#include "gbos.h" /* ptest: exercise the kernel pipe in one process - write some bytes, read them back, then close the write end and confirm the reader sees EOF. */ void main(void) { unsigned char pr = pipe(); unsigned char pw = pr + 1; int c; if (pr == NOFD) { puts("pipe: none free"); nl(); return; } fputc(pw, 'H'); fputc(pw, 'i'); fputc(pw, '!'); c = fgetc(pr); putc(c); c = fgetc(pr); putc(c); c = fgetc(pr); putc(c); nl(); close(pw); /* last writer gone */ c = fgetc(pr); if (c < 0) puts("EOF"); else { puts("got "); putc(c); } nl(); close(pr); }