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