Blob


1 #include <fmt.h>
2 #include "bio.h"
4 Biobuf bout;
6 void
7 bcat(Biobuf *b, char *name)
8 {
9 char buf[1000];
10 int n;
12 while((n = Bread(b, buf, sizeof buf)) > 0){
13 if(Bwrite(&bout, buf, n) < 0)
14 fprint(2, "writing during %s: %r\n", name);
15 }
16 if(n < 0)
17 fprint(2, "reading %s: %r\n", name);
18 }
20 int
21 main(int argc, char **argv)
22 {
23 int i;
24 Biobuf b, *bp;
26 Binit(&bout, 1, O_WRONLY);
28 if(argc == 1){
29 Binit(&b, 0, O_RDONLY);
30 bcat(&b, "<stdin>");
31 }else{
32 for(i=1; i<argc; i++){
33 if((bp = Bopen(argv[i], O_RDONLY)) == 0){
34 fprint(2, "Bopen %s: %r\n", argv[i]);
35 continue;
36 }
37 bcat(bp, argv[i]);
38 Bterm(bp);
39 }
40 }
41 exit(0);
42 }