blob: 88b7d307837066c16139d4eb6f77be3cdb878f37 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#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);
}
|