From 9c0de18dcdb7a15818eec66210c8154f7b208769 Mon Sep 17 00:00:00 2001 From: Bill Joy Date: Fri, 26 Oct 1979 08:09:57 -0800 Subject: [PATCH] BSD 3 development Work on file usr/src/cmd/size.c Synthesized-from: 3bsd --- usr/src/cmd/size.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 usr/src/cmd/size.c diff --git a/usr/src/cmd/size.c b/usr/src/cmd/size.c new file mode 100644 index 0000000000..6aedaef5ff --- /dev/null +++ b/usr/src/cmd/size.c @@ -0,0 +1,46 @@ +#include +#include + +/* + size -- determine object size + +*/ + +int a_magic[] = {A_MAGIC1,A_MAGIC2,A_MAGIC3,A_MAGIC4,0412,0413,0}; + +main(argc, argv) +char **argv; +{ + struct exec buf; + long sum; + int gorp,i; + FILE *f; + + if (argc==1) { + *argv = "a.out"; + argc++; + --argv; + } + gorp = argc; + while(--argc) { + ++argv; + if ((f = fopen(*argv, "r"))==NULL) { + printf("size: %s not found\n", *argv); + continue; + } + fread((char *)&buf, sizeof(buf), 1, f); + for(i=0;a_magic[i];i++) + if(a_magic[i] == buf.a_magic) break; + if(a_magic[i] == 0) { + printf("size: %s not an object file\n", *argv); + fclose(f); + continue; + } + if (gorp>2) + printf("%s: ", *argv); + printf("%u+%u+%u = ", buf.a_text,buf.a_data,buf.a_bss); + sum = (long) buf.a_text + (long) buf.a_data + (long) buf.a_bss; + printf("%Db = 0x%Xb\n", sum, sum); + fclose(f); + } +} -- 2.20.1