全部博文(930)
分类: LINUX
2009-02-24 10:12:09
功能 | 等待子进程中断或结束 |
原型 | Pid_t wait(int *status) |
传入值 | status子进程状态 |
返回值 | 成功返回子进程的进程号,否则返回-1 |
注 | wait()会暂停目前进程的执行,直到有信号来到或子进程终止 |
例:
#include
#include
#include
#include
int main()
{
pid_t child;
int i;
child=fork();
if(child<0)
{
perror("创建进程失败!");
exit(1);
}
else if(child==0)
{
printf("这是子进程,进程号是:%d\n",getpid());
for(i=0;i<100;i++)
printf("这是子进程第%d此打印!\n",i+1);
printf("子进程结束!");
}
else
{
printf("这是父进程,进程号是:%d\n",getppid());
printf("父进程等待子进程结束...");
wait(&child);
printf("父进程结束!");
}
}
注:wait()函数会阻塞父进程运行直到子进程正常结束。
5)waitpid()函数
头文件 |
#include #include |
功能 | 等待子进程中断或结束 |
原型 | pid_t waitpid(pid_t pid,int *status,int options) |
传入值 |
pid为子进程号 status为子进程状态 option可以为0、WNOHANG(如果没有任何已终止的子进程则马上返回,不予等待)或WUNTRACED(如果子进程进入暂停执行则马上返回,但终止状态不予理会) |
返回值 | 成功返回子进程号,否则返回-1 |
注 | 此函数会暂停目前进程的执行,直到有信号来到或子进程终止 |
例:略(同wait()例差不多)。