1 #include <u.h>
2 #include <libc.h>
3 #include <bio.h>
4
5 void
cat(int f,char * s)6 cat(int f, char *s)
7 {
8 Biobuf b;
9 char *p;
10
11 Binit(&b, f, OREAD);
12 while((p = Brdline(&b, '\n')) != nil)
13 if(write(1, p, Blinelen(&b)) != Blinelen(&b))
14 sysfatal("write error copying %s: %r", s);
15 Bterm(&b);
16 }
17
18 void
main(int argc,char * argv[])19 main(int argc, char *argv[])
20 {
21 int f, i;
22
23 argv0 = "lines";
24 if(argc == 1)
25 cat(0, "<stdin>");
26 else for(i=1; i<argc; i++){
27 f = open(argv[i], OREAD);
28 if(f < 0)
29 sysfatal("can't open %s: %r", argv[i]);
30 else{
31 cat(f, argv[i]);
32 close(f);
33 }
34 }
35 exits(0);
36 }
37
38