#include <9pm/u.h>
#include <9pm/libc.h>

void
cat(int fd, char *f)
{
	char buf[8192];
	int n;
	
	while((n = read(fd, buf, sizeof buf-1)) > 0){
		buf[n] = '\0';
		pm_dwrite(buf);
	}
	if(n < 0)
		sysfatal("cat: read failed: %r");
}

void
main(int argc, char **argv)
{
	int i, fd;

	if(argc == 1){
		cat(0, "<stdin>");
		exits(nil);
	}
	for(i=1; i<argc; i++){
		if((fd = open(argv[i], OREAD)) < 0)
			sysfatal("open %s: %r", argv[i]);
		cat(fd, argv[i]);
		close(fd);
	}
	exits(nil);		
}


syntax highlighted by Code2HTML, v. 0.9.1