在main父进程创建两个子进程, 分别输出两个子进程与父进程的id号。
时间: 2024-06-13 19:03:38 浏览: 129
父进程和子进程
在这段代码中,父进程通过fork()函数创建了两个子进程c1和c2。当c1等于0时,表示当前进程是子进程1,输出子进程1的进程ID号。当c1大于0时,表示当前进程是父进程,继续通过fork()函数创建子进程c2。当c2等于0时,表示当前进程是子进程2,输出子进程2的进程ID号。当c2大于0时,表示当前进程是父进程,输出父进程的进程ID号。最后,父进程通过wait()函数等待子进程结束,防止子进程成为僵尸进程。
代码如下:
```
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <sys/wait.h>
int main(int argc, char const *argv[]) {
pid_t c1 = fork();
if(c1 == 0) //child1
{
printf("child1 ID: %d\n", getpid());
sleep(200);
}
else if(c1 > 0) //parent
{
printf("parent ID: %d\n", getpid());
pid_t c2 = fork();
if(c2 == 0) //child2
{
printf("child2 ID: %d\n", getpid());
sleep(200);
}
else if(c2 > 0) //parent
{
printf("parent ID: %d\n", getpid());
int status;
wait(&status);
}
}
return 0;
}
--相关问题--:
阅读全文