以下代码的工作方式如下:
我创建了一个连接两个进程的管道。一个进程将是命令who,以便知道哪些用户已登录。另一个进程是命令grep,它接受谁的命令输出并查找" user"进入这个输出。如果用户登录,主程序的退出代码必须为1,如果用户未登录则必须为0。我必须在哪里取出退出代码?
以下是代码:
int fd[2];
pipe(fd);
int pid1,pid2;
pid1 = fork();
if (pid1 != 0) {
pid2 = fork();
if(pid2 == 0) {
close(0); dup(fd[0]); close(fd[0]), close(fd[1]);
execlp("grep","grep ","user",NULL);
} else {
close(fd[0]); close(fd[1]);
}
} else {
close(1);
dup(fd[1]);
close(fd[0]);
close(fd[1]);
execlp("who","who",NULL);
}