【发布时间】:2016-01-26 07:02:23
【问题描述】:
int main(){
mkfifo("view",0666);
int pid = fork();
if(pid==0){
close(1);
int fd = open("view",O_WRONLY);
dup(fd);
execlp("cat", "cat", "users", NULL);
close(fd);
}
else{
wait(NULL);
int fd = open("view",O_RDONLY);
char resp[100];
read(fd,resp,20);
printf("%s\n",resp);
close(fd);
}
}
我有这段代码,但由于某种原因,当我执行它时,进程冻结,没有打印,也没有退出(我必须按 CTRL+C)。 知道为什么吗?我尝试了同样的事情,但是使用了内部管道并且它起作用了。
【问题讨论】: