xref: /original-bsd/usr.bin/size/size.c (revision 552e81d8)
1 static char *sccsid = "@(#)size.c	4.1 (Berkeley) 10/01/80";
2 /*
3  * size
4  */
5 #include	<stdio.h>
6 #include 	<a.out.h>
7 
8 main(argc, argv)
9 char **argv;
10 {
11 	struct exec buf;
12 	long sum;
13 	int gorp,i;
14 	FILE *f;
15 
16 	if (argc==1) {
17 		*argv = "a.out";
18 		argc++;
19 		--argv;
20 	}
21 	gorp = argc;
22 	while(--argc) {
23 		++argv;
24 		if ((f = fopen(*argv, "r"))==NULL) {
25 			printf("size: %s not found\n", *argv);
26 			continue;
27 		}
28 		fread((char *)&buf, sizeof(buf), 1, f);
29 		if (N_BADMAG(buf)) {
30 			printf("size: %s not an object file\n", *argv);
31 			fclose(f);
32 			continue;
33 		}
34 		if (gorp>2)
35 			printf("%s: ", *argv);
36 		printf("%u+%u+%u = ", buf.a_text,buf.a_data,buf.a_bss);
37 		sum = (long) buf.a_text + (long) buf.a_data + (long) buf.a_bss;
38 		printf("%Db = 0x%Xb\n", sum, sum);
39 		fclose(f);
40 	}
41 }
42