1 static char *sccsid = "@(#)size.c 4.3 (Berkeley) 07/02/81"; 2 /* 3 * size 4 */ 5 6 #include <stdio.h> 7 #include <a.out.h> 8 9 int header; 10 11 main(argc, argv) 12 char **argv; 13 { 14 struct exec buf; 15 long sum; 16 int gorp,i; 17 FILE *f; 18 19 if (argc==1) { 20 *argv = "a.out"; 21 argc++; 22 --argv; 23 } 24 gorp = argc; 25 while(--argc) { 26 ++argv; 27 if ((f = fopen(*argv, "r"))==NULL) { 28 printf("size: %s not found\n", *argv); 29 continue; 30 } 31 if (fread((char *)&buf, sizeof(buf), 1, f) != 1 || 32 N_BADMAG(buf)) { 33 printf("size: %s not an object file\n", *argv); 34 fclose(f); 35 continue; 36 } 37 if (header == 0) { 38 printf("text\tdata\tbss\tdec\thex\n"); 39 header = 1; 40 } 41 printf("%u\t%u\t%u\t", buf.a_text,buf.a_data,buf.a_bss); 42 sum = (long) buf.a_text + (long) buf.a_data + (long) buf.a_bss; 43 printf("%ld\t%lx", sum, sum); 44 if (gorp>2) 45 printf("\t%s", *argv); 46 printf("\n"); 47 fclose(f); 48 } 49 } 50