#include #include #include main() { int parent[2]; int ret = pipe(parent); assert(ret != -1); int child[2]; ret = pipe(child); assert(ret != -1); int pid = fork(); assert(pid != -1); if(pid != 0) { // parent close(parent[0]); close(child[1]); int wfd = parent[1]; int rfd = child[0]; printf("go\n"); int i = 1000000; while(i--) { char c = 1; ret = write(wfd, &c, 1); assert(ret == 1); ret = read(rfd, &c, 1); assert(ret == 1); } printf("done\n"); } else { // child close(parent[1]); close(child[0]); int wfd = child[1]; int rfd = parent[0]; int i = 1000000; while(i--) { char c = 1; ret = read(rfd, &c, 1); assert(ret == 1); ret = write(wfd, &c, 1); assert(ret == 1); } } }