#include "library/syscalls.h" #include "library/user-io.h" #include "library/string.h" int main(int argc, char *argv[]) { printf("%d: Running pipe test!\n", syscall_process_self()); int w = syscall_open_pipe(); syscall_object_set_blocking(w, 0); int x = syscall_process_fork(); if(x) { printf("%d: Writing...\n", syscall_process_self()); syscall_object_dup(w, KNO_STDOUT); printf("Testing!\n"); syscall_process_sleep(1000); } else { printf("%d: Reading...\n", syscall_process_self()); int r; char buf[10]; while(!(r = syscall_object_read(w, buf, 10))) { syscall_process_yield(); } printf("%d: I read %d chars from my brother\n", syscall_process_self(), r); printf("%d: They are (%s)\n", syscall_process_self(), buf); } return 0; }