|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980, 1987 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that the above copyright notice and this paragraph are ! 7: * duplicated in all such forms and that any documentation, ! 8: * advertising materials, and other materials related to such ! 9: * distribution and use acknowledge that the software was developed ! 10: * by the University of California, Berkeley. The name of the ! 11: * University may not be used to endorse or promote products derived ! 12: * from this software without specific prior written permission. ! 13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 16: */ ! 17: ! 18: #ifndef lint ! 19: char copyright[] = ! 20: "@(#) Copyright (c) 1980, 1987 Regents of the University of California.\n\ ! 21: All rights reserved.\n"; ! 22: #endif /* not lint */ ! 23: ! 24: #ifndef lint ! 25: static char sccsid[] = "@(#)head.c 5.4 (Berkeley) 6/29/88"; ! 26: #endif /* not lint */ ! 27: ! 28: #include <stdio.h> ! 29: #include <ctype.h> ! 30: /* ! 31: * head - give the first few lines of a stream or of each of a set of files ! 32: * ! 33: * Bill Joy UCB August 24, 1977 ! 34: */ ! 35: ! 36: main(argc, argv) ! 37: int argc; ! 38: char **argv; ! 39: { ! 40: register int ch, cnt; ! 41: int firsttime, linecnt = 10; ! 42: ! 43: if (argc > 1 && argv[1][0] == '-') { ! 44: if (!isdigit(argv[1][1])) { ! 45: fprintf(stderr, "head: illegal option -- %c\n", argv[1][1]); ! 46: goto usage; ! 47: } ! 48: if ((linecnt = atoi(argv[1] + 1)) < 0) { ! 49: usage: fputs("usage: head [-line_count] [file ...]\n", stderr); ! 50: exit(1); ! 51: } ! 52: --argc; ++argv; ! 53: } ! 54: /* setlinebuf(stdout); */ ! 55: for (firsttime = 1, --argc, ++argv;; firsttime = 0) { ! 56: if (!*argv) { ! 57: if (!firsttime) ! 58: exit(0); ! 59: } ! 60: else { ! 61: if (!freopen(*argv, "r", stdin)) { ! 62: fprintf(stderr, "head: can't read %s.\n", *argv); ! 63: exit(1); ! 64: } ! 65: if (argc > 1) { ! 66: if (!firsttime) ! 67: putchar('\n'); ! 68: printf("==> %s <==\n", *argv); ! 69: } ! 70: ++argv; ! 71: } ! 72: for (cnt = linecnt; cnt; --cnt) ! 73: while ((ch = getchar()) != EOF) ! 74: if (putchar(ch) == '\n') ! 75: break; ! 76: } ! 77: /*NOTREACHED*/ ! 78: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.