1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4 #include <mach.h>
5
6 int
size(char * file)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
main(int argc,char * argv[])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