1 #include <u.h> 2 #include <libc.h> 3 #include <bio.h> 4 #include <mach.h> 5 6 int size(char*); 7 8 void 9 main(int argc, char *argv[]) 10 { 11 int err = 0; 12 13 USED(argc); 14 if(*++argv == 0) 15 err |= size("v.out"); 16 else 17 while(*argv) 18 err |= size(*argv++); 19 if(err) 20 exits("error"); 21 else 22 exits(0); 23 } 24 25 int 26 size(char *file) 27 { 28 int fd; 29 Fhdr f; 30 31 if((fd = open(file, OREAD)) < 0){ 32 fprint(2, "size: "); 33 perror(file); 34 return 1; 35 } 36 if (crackhdr(fd, &f)) { 37 print("%ldt + %ldd + %ldb = %ld\t%s\n",f.txtsz,f.datsz, 38 f.bsssz, f.txtsz+f.datsz+f.bsssz, file); 39 close(fd); 40 return 0; 41 } 42 fprint(2, "size: %s not an a.out\n", file); 43 close(fd); 44 return 1; 45 } 46