# 2.11BSD#431 - /usr/src/ucb/head.c

##### Functions

    copyout           X
    getnum            X
    main              X

##### Variables

    argc              X
    copyright         X
    linecnt           X

       1: /*
       2:  * Copyright (c) 1980 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: #ifndef lint
       8: char copyright[] =
       9: "@(#) Copyright (c) 1980 Regents of the University of California.\n\
      10:  All rights reserved.\n";
      11: #endif not lint
      12:
      13: #ifndef lint
      14: static char sccsid[] = "@(#)head.c	5.1 (Berkeley) 5/31/85";
      15: #endif not lint
      16:
      17: #include <stdio.h>
      18: /*
      19:  * head - give the first few lines of a stream or of each of a set of files
      20:  *
      21:  * Bill Joy UCB August 24, 1977
      22:  */
      23:
      24: int linecnt = 10;
      25: int argc;
      26:
      27: main(Argc, argv)
      28:     int Argc;
      29:     char *argv[];
      30: {
      31:     register int argc;
      32:     char *name;
      33:     register char *argp;
      34:     static int around;
      35:
      36:     Argc--, argv++;
      37:     argc = Argc;
      38:     do {
      39:         while (argc > 0 && argv[0][0] == '-') {
      40:             linecnt = getnum(argv[0] + 1);
      41:             argc--, argv++, Argc--;
      42:         }
      43:         if (argc == 0 && around)
      44:             break;
      45:         if (argc > 0) {
      46:             close(0);
      47:             if (freopen(argv[0], "r", stdin) == NULL) {
      48:                 perror(argv[0]);
      49:                 exit(1);
      50:             }
      51:             name = argv[0];
      52:             argc--, argv++;
      53:         } else
      54:             name = 0;
      55:         if (around)
      56:             putchar('\n');
      57:         around++;
      58:         if (Argc > 1 && name)
      59:             printf("==> %s <==\n", name);
      60:         copyout(linecnt);
      61:         fflush(stdout);
      62:     } while (argc > 0);
      63: }
      64:
      65: copyout(cnt)
      66:     register int cnt;
      67: {
      68:     register int c;
      69:     char lbuf[BUFSIZ];
      70:
      71:     while (cnt > 0 && fgets(lbuf, sizeof lbuf, stdin) != 0) {
      72:         printf("%s", lbuf);
      73:         fflush(stdout);
      74:         cnt--;
      75:     }
      76: }
      77:
      78: getnum(cp)
      79:     register char *cp;
      80: {
      81:     register int i;
      82:
      83:     for (i = 0; *cp >= '0' && *cp <= '9'; cp++)
      84:         i *= 10, i += *cp - '0';
      85:     if (*cp) {
      86:         fprintf(stderr, "Badly formed number\n");
      87:         exit(1);
      88:     }
      89:     return (i);
      90: }

#### Defined functions

copyout defined in line 65; used 1 times

- in line 60

getnum defined in line 78; used 1 times

- in line 40

main defined in line 27; never used

#### Defined variables

argc defined in line 25; used 8 times

- in line 31, 37-45(5), 52, 62

copyright defined in line 8; never used
linecnt defined in line 24; used 2 times

- in line 40, 60

sccsid defined in line 14; never used

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 733 |