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