waitpid的使用
waitpid用于等待特定的进程结束之后,主进程再继续执行,这时主进程会进入阻塞状态。在fork之后,如果子进程不使用waitpid,则可能时主进程先结束,也可能时子进程先结束。
#子进程
#include<unistd.h>
#include<stdio.h>
int main()
{
//int a;
printf("hello world\n");
printf("this is sb.\n");
//scanf("%d",&a);
exit(0);
}
#主进程
#include<stdio.h>
#include<unistd.h>
int main()
{
pid_t pid;
int status;
//execl("childp","");
pid=fork();
if(pid == 0)
{
printf("\n");
printf("pid=%d\n",pid);
execl("childp","");
}
else
{
waitpid(pid,&status,0);
printf("main process end\n");
}
}