]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/size.c
resample: improve performance (thanks José Miguel Sánchez García)
[plan9front.git] / sys / src / cmd / size.c
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 }