]> git.lizzy.rs Git - plan9front.git/blob - sys/src/cmd/aux/rdwr.c
abaco: cleanup, handle image/x-icon, don't use backspace as a hotkey, and remove...
[plan9front.git] / sys / src / cmd / aux / rdwr.c
1 #include <u.h>
2 #include <libc.h>
3
4 int wrrd;
5
6 void
7 usage(void)
8 {
9         fprint(2, "usage: rdwr [-w] file\n");
10         exits("usage");
11 }
12
13 void
14 main(int argc, char **argv)
15 {
16         int fd;
17         char buf[8192];
18         int n;
19
20         ARGBEGIN{
21         case 'w':
22                 wrrd = 1;
23                 break;
24         default:
25                 usage();
26         }ARGEND;
27
28         if(argc != 1)
29                 usage();
30
31         if((fd = open(argv[0], ORDWR)) < 0)
32                 sysfatal("open: %r");
33
34         if(wrrd){
35                 n = read(fd, buf, sizeof buf);
36                 if(n < 0)
37                         fprint(2, "read error: %r\n");
38                 else{
39                         write(1, buf, n);
40                         print("\n");
41                 }
42         }
43
44         while(print("> "), (n = read(0, buf, 1000)) > 0) {
45                 seek(fd, 0, 0);
46                 if(write(fd, buf, n-1) != n-1)  /* n-1: no newline */
47                         fprint(2, "write error: %r\n");
48                 seek(fd, 0, 0);
49                 n = read(fd, buf, sizeof buf);
50                 if(n < 0)
51                         fprint(2, "read error: %r\n");
52                 else{
53                         write(1, buf, n);
54                         print("\n");
55                 }
56         }
57 }