BSD 4 release
[unix-history] / usr / src / cmd / size.c
CommitLineData
31cef89c 1static char *sccsid = "@(#)size.c 4.2 (Berkeley) 10/9/80";
14a73586
BJ
2/*
3 * size
4 */
c7485fe5 5
14a73586
BJ
6#include <stdio.h>
7#include <a.out.h>
8
c7485fe5
BJ
9int header;
10
14a73586
BJ
11main(argc, argv)
12char **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 fread((char *)&buf, sizeof(buf), 1, f);
c7485fe5 32 if(N_BADMAG(buf)) {
14a73586
BJ
33 printf("size: %s not an object file\n", *argv);
34 fclose(f);
35 continue;
36 }
c7485fe5
BJ
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);
14a73586 42 sum = (long) buf.a_text + (long) buf.a_data + (long) buf.a_bss;
c7485fe5
BJ
43 printf("%ld\t%lx", sum, sum);
44 if (gorp>2)
45 printf("\t%s", *argv);
46 printf("\n");
14a73586
BJ
47 fclose(f);
48 }
49}