shithub: 9intro

ref: a351bcdccdf5a4273bc8dc3360a48fbb8b8aa9ea
dir: /src/srvecho.c/

View raw version
#include <u.h>
#include <libc.h>

void
main(int, char*[])
{
	int	fd[2];
	int	srvfd;
	char	buf[128];
	int	nr;

	if (pipe(fd) < 0)
		sysfatal("pipe: %r");
	srvfd = create("/srv/echo", OWRITE, 0664);
	if (srvfd < 0)
		sysfatal("can't create at /srv: %r");
	if (fprint(srvfd, "%d", fd[1]) < 0)
		sysfatal("can't post file descriptor: %r");
	close(fd[1]);
	for (;;){
		nr = read(fd[0], buf, sizeof buf);
		if (nr <= 0)
			break;
		write(1, buf, nr);
	}
	print("exiting\n");
	exits(nil);
}