1
/* defining IN_SFASL gets us fopen_binary */
11
struct lsymbol_table tab;
13
int main(int argc,char *argv[],char **envp)
19
perror("bad arg count");
24
fprintf ( stderr, "rsym_nt: %s %s\n", in, out );
25
sprintf ( buf, "nm -g %s > _rsym1", argv[1] );
26
if ( system ( buf ) ) {
27
printf("failed: %s", buf);
31
FILE *fp = fopen("_rsym1","rb");
34
symout = fopen ( out, "wb" );
41
fseek( symout, sizeof ( struct lsymbol_table ), 0 );
50
fgets(buf1,sizeof(buf1),fp);
51
if ( 3 == sscanf ( buf1, "%x %c %s", &addr, &ch, name )
54
fwrite ( (char *)&addr, sizeof ( int ), 1, symout );
55
while ( tab.tot_leng++, *name )
56
putc ( *name++, symout );
59
if ( feof ( fp ) ) break;
61
fseek ( symout, 0, 0 );
62
fwrite ( &tab, sizeof ( tab ), 1, symout );