Linux-fork命令创建进程


Linux-fork命令创建进程

子进程是从调用fork以后的代码开始执行的,fork调用一次会返回两个值,其中在子进程中返回0,在父进程中返回子进程的pid号

Ax 调用Fork()

我们写一个C语言程序来使用fock函数。

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

int main(void)
{

    fork();                    // 调用fork函数;
    printf("fork testing!");
    
    return 0;

}

输出结果

fork testing!fork testing!

可以发现,输出了两次printf函数。

Bx 定义

在Linux中,父进程以分裂的方式来创建子进程,创建一个子进程的系统调用叫做fork()。

那么如何让fork输出不同的结果呢。

Cx 再次调用Fork()

编写程序。

# include<stdio.h>
# include<unistd.h>
# include<sys/types.h>
# include<stdlib.h>

int main(void)
{

    pid_t pid;
    char *message;
    int n;
    pid = fork();
    if(pid < 0)
    {
        perror("fork failed");
        exit(1);
    }
    if(pid == 0)
    {
        printf("This is the cihild process.My PID is:%d.My PPID is: %d.\n", getpid(), getppid());
    }
    else
    {
        printf("This is the parent process.My PID is %d. \n", getpid());
    }
    return 0;

}

输出结果

This is the parent process.My PID is 68333. 
This is the cihild process.My PID is:68334.My PPID is: 68333.

通过fork的返回值来返回不同的值,这里父进程是68333,子进程是68334


文章作者: Enomothem
版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Enomothem !
  目录