1 /*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * %sccs.include.redist.c% 6 * 7 * @(#)cat.c 8.1 (Berkeley) 06/11/93 8 */ 9 10 int eval; 11 12 main(argc, argv) 13 int argc; 14 char **argv; 15 { 16 register int fd, nr; 17 char buf[2048]; 18 19 if (*++argv && **argv == '-') { 20 err("no options available", 0); 21 _exit(1); 22 } 23 for (eval = 0; *argv; ++argv) 24 if ((fd = open(*argv, 0, 0)) < 0) 25 err(*argv, 1); 26 else { 27 while ((nr = read(fd, buf, sizeof(buf))) > 0) 28 if (write(1, buf, nr) != nr) { 29 err(*argv, 1); 30 break; 31 } 32 if (nr == -1) 33 err(*argv, 1); 34 } 35 _exit(eval); 36 } 37 38 #define PROGNAME "cat: " 39 #include "errfunction" 40