【发布时间】:2010-10-15 22:58:04
【问题描述】:
这样一个使用等待功能的程序就是这个:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int pid,fd[2]; int n; char line[20];
if(pipe(fd)<0) {
printf("Error creating pipe");
} else {
pid=fork();
if(pid<0) {
printf("Error while forking");
} else {
if(pid>0) {
close(fd[0]);
write(fd[1],"Hello\n",6);
while(wait((int *)0)!=pid);
} else {
close(fd[1]);
n=read(fd[0],line,20);
if(n<0)
printf("Error reading a file");
write(1,line,n);
}
}
}
return 0;
}
【问题讨论】:
-
如果只有示例代码与线程有关。
-
@Sean -- 你错过了 fork() 调用吗?
-
不。我看到了。仍然与线程无关。
-
@Sean -- 我明白了。对问题的编辑删除了文本中的线程引用。我以为你在推断没有什么可以等待的。当然,这是一个正在等待的进程而不是线程。
-
@tvanfosson:是的,我最初评论时“线程”仍在标题/正文中。