Blame


1 b2cfc4e2 2003-09-30 devnull #include <fmt.h>
2 b2cfc4e2 2003-09-30 devnull #include "bio.h"
3 b2cfc4e2 2003-09-30 devnull
4 b2cfc4e2 2003-09-30 devnull Biobuf bout;
5 b2cfc4e2 2003-09-30 devnull
6 b2cfc4e2 2003-09-30 devnull void
7 b2cfc4e2 2003-09-30 devnull bcat(Biobuf *b, char *name)
8 b2cfc4e2 2003-09-30 devnull {
9 b2cfc4e2 2003-09-30 devnull char buf[1000];
10 b2cfc4e2 2003-09-30 devnull int n;
11 b2cfc4e2 2003-09-30 devnull
12 b2cfc4e2 2003-09-30 devnull while((n = Bread(b, buf, sizeof buf)) > 0){
13 b2cfc4e2 2003-09-30 devnull if(Bwrite(&bout, buf, n) < 0)
14 b2cfc4e2 2003-09-30 devnull fprint(2, "writing during %s: %r\n", name);
15 b2cfc4e2 2003-09-30 devnull }
16 b2cfc4e2 2003-09-30 devnull if(n < 0)
17 fa325e9b 2020-01-10 cross fprint(2, "reading %s: %r\n", name);
18 b2cfc4e2 2003-09-30 devnull }
19 b2cfc4e2 2003-09-30 devnull
20 b2cfc4e2 2003-09-30 devnull int
21 b2cfc4e2 2003-09-30 devnull main(int argc, char **argv)
22 b2cfc4e2 2003-09-30 devnull {
23 b2cfc4e2 2003-09-30 devnull int i;
24 b2cfc4e2 2003-09-30 devnull Biobuf b, *bp;
25 669250d1 2003-12-03 devnull Fmt fmt;
26 b2cfc4e2 2003-09-30 devnull
27 b2cfc4e2 2003-09-30 devnull Binit(&bout, 1, O_WRONLY);
28 669250d1 2003-12-03 devnull Bfmtinit(&fmt, &bout);
29 669250d1 2003-12-03 devnull fmtprint(&fmt, "hello, world\n");
30 669250d1 2003-12-03 devnull Bfmtflush(&fmt);
31 b2cfc4e2 2003-09-30 devnull
32 b2cfc4e2 2003-09-30 devnull if(argc == 1){
33 b2cfc4e2 2003-09-30 devnull Binit(&b, 0, O_RDONLY);
34 b2cfc4e2 2003-09-30 devnull bcat(&b, "<stdin>");
35 b2cfc4e2 2003-09-30 devnull }else{
36 b2cfc4e2 2003-09-30 devnull for(i=1; i<argc; i++){
37 b2cfc4e2 2003-09-30 devnull if((bp = Bopen(argv[i], O_RDONLY)) == 0){
38 b2cfc4e2 2003-09-30 devnull fprint(2, "Bopen %s: %r\n", argv[i]);
39 b2cfc4e2 2003-09-30 devnull continue;
40 b2cfc4e2 2003-09-30 devnull }
41 b2cfc4e2 2003-09-30 devnull bcat(bp, argv[i]);
42 b2cfc4e2 2003-09-30 devnull Bterm(bp);
43 b2cfc4e2 2003-09-30 devnull }
44 b2cfc4e2 2003-09-30 devnull }
45 b2cfc4e2 2003-09-30 devnull exit(0);
46 b2cfc4e2 2003-09-30 devnull }