1 #include <lib9.h> 2 3 void 4 cat(int f, char *s) 5 { 6 char buf[8192]; 7 long n; 8 9 while((n=read(f, buf, (long)sizeof buf))>0) 10 if(write(1, buf, n)!=n) 11 sysfatal("write error copying %s: %r", s); 12 if(n < 0) 13 sysfatal("error reading %s: %r", s); 14 } 15 16 void 17 main(int argc, char *argv[]) 18 { 19 int f, i; 20 21 argv0 = "cat"; 22 if(argc == 1) 23 cat(0, "<stdin>"); 24 else for(i=1; i<argc; i++){ 25 f = open(argv[i], OREAD); 26 if(f < 0) 27 sysfatal("can't open %s: %r", argv[i]); 28 else{ 29 cat(f, argv[i]); 30 close(f); 31 } 32 } 33 exits(0); 34 } 35 36