// $Id: pipe2.c,v 1.1 2004-12-16 08:24:46+09 kaiya Exp kaiya $ #include #include #include main(int argc, char* argv[]){ int pipes[2]; pid_t pid; if(argc<1) exit(3); if(pipe(pipes)<0) exit(1); if((pid=fork())==0){ // in child close(pipes[0]); // close read close(1); dup(pipes[1]); execl("/bin/ps", "ps", "-ef", NULL); }else if(pid>0){ // in parent close(pipes[1]); // close write close(0); dup(pipes[0]); execl("/bin/grep", "grep", argv[1], NULL); }else{ exit(2); } }