# 2.11BSD#431 - /usr/src/bin/strip.c

##### Functions

    main              X
    strip             X

##### Variables

    copyright         X
    head              X
    status            X

       1: /*
       2:  * Copyright (c) 1983 Regents of the University of California.
       3:  * All rights reserved.  The Berkeley software License Agreement
       4:  * specifies the terms and conditions for redistribution.
       5:  */
       6:
       7: #if defined(DOSCCS) && !defined(lint)
       8: char copyright[] =
       9: "@(#) Copyright (c) 1983 Regents of the University of California.\n\
      10:  All rights reserved.\n";
      11:
      12: static char sccsid[] = "@(#)strip.c	5.1.1 (2.11BSD GTE) 1/1/94";
      13: #endif
      14:
      15: #include <a.out.h>
      16: #include <signal.h>
      17: #include <stdio.h>
      18: #include <sys/file.h>
      19:
      20: struct  xexec head;
      21: int status;
      22:
      23: main(argc, argv)
      24:     char *argv[];
      25: {
      26:     register i;
      27:
      28:     signal(SIGHUP, SIG_IGN);
      29:     signal(SIGINT, SIG_IGN);
      30:     signal(SIGQUIT, SIG_IGN);
      31:     for (i = 1; i < argc; i++) {
      32:         strip(argv[i]);
      33:         if (status > 1)
      34:             break;
      35:     }
      36:     exit(status);
      37: }
      38:
      39: strip(name)
      40:     char *name;
      41: {
      42:     register f;
      43:     long size;
      44:
      45:     f = open(name, O_RDWR);
      46:     if (f < 0) {
      47:         fprintf(stderr, "strip: "); perror(name);
      48:         status = 1;
      49:         goto out;
      50:     }
      51:     if (read(f, (char *)&head, sizeof (head)) < 0 || N_BADMAG(head.e)) {
      52:         printf("strip: %s not in a.out format\n", name);
      53:         status = 1;
      54:         goto out;
      55:     }
      56:     if ((head.e.a_syms == 0) && ((head.e.a_flag & 1) != 0))
      57:         goto out;
      58:
      59:     size = N_DATOFF(head) + head.e.a_data;
      60:     head.e.a_syms = 0;
      61:     head.e.a_flag |= 1;
      62:     if (ftruncate(f, size) < 0) {
      63:         fprintf("strip: "); perror(name);
      64:         status = 1;
      65:         goto out;
      66:     }
      67:     (void) lseek(f, (long)0, L_SET);
      68:     (void) write(f, (char *)&head.e, sizeof (head.e));
      69: out:
      70:     close(f);
      71: }

#### Defined functions

main defined in line 23; never used
strip defined in line 39; used 1 times

- in line 32

#### Defined variables

copyright defined in line 8; never used
head defined in line 20; used 11 times

- in line 51-61(9), 68(2)

sccsid defined in line 12; never used
status defined in line 21; used 5 times

- in line 33-36(2), 48-53(2), 64

Last modified: 1994-01-11 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 1256 |