xref: /plan9-contrib/sys/src/cmd/size.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
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