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