小编Tre*_*vTS的帖子

分叉后退出子进程

我有这段代码,它的目标是创建N个子进程并打印出每个PID和进程号。

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

void childProcess(int num)
{
    pid_t pid = fork();

    printf("Hello! I am process no. %d! my PID is %d!\n", num, pid);
}

int main()
{
    int i = 0;

    for(i = 1; i <= 5; i++)
    {
        childProcess(i);
        _exit(3);
    }
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)

然而之后尝试多种方式:如exitVS _exi在T,递归childProcesspid = wait(),我仍然无法顺利建立仅5进程。到目前为止,使用此代码,我的输出是:

Hello! I am process no. 1! my PID is 96196!
Hello! I am process no. 1! my PID is 0!
Run Code Online (Sandbox Code Playgroud)

我不确定如何正确退出子进程。没有出口,代码将创建N!流程。

c operating-system fork pid process

3
推荐指数
2
解决办法
7754
查看次数

标签 统计

c ×1

fork ×1

operating-system ×1

pid ×1

process ×1