|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.