Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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
}