int a_magic
[] = {A_MAGIC1
, A_MAGIC2
, A_MAGIC3
, A_MAGIC4
, 0412, 0413, 0};
signal(SIGQUIT
, SIG_IGN
);
tname
= mktemp("/tmp/sXXXXX");
close(creat(tname
, 0600));
printf("cannot create temp file\n");
printf("cannot open %s\n", name
);
read(f
, (char *)&head
, sizeof(head
));
if(a_magic
[i
] == head
.a_magic
) break;
printf("%s not in a.out format\n", name
);
if ((head
.a_syms
== 0) && (head
.a_trsize
== 0) && (head
.a_drsize
==0)) {
printf("%s already stripped\n", name
);
size
= (long)head
.a_text
+ head
.a_data
;
head
.a_syms
= head
.a_trsize
= head
.a_drsize
= 0 ;
write(tf
, (char *)&head
, sizeof(head
));
if (head
.a_magic
== 0412 || head
.a_magic
== 0413) {
size
+= PAGSIZ
- sizeof (head
);
if(copy(name
, f
, tf
, size
)) {
printf("%s cannot recreate\n", name
);
if(copy(name
, tf
, f
, size
))
printf("%s unexpected eof\n", name
);
printf("%s unexpected write eof\n", name
);