【问题标题】:is child process can run different program after fork() call?子进程可以在 fork() 调用后运行不同的程序吗?
【发布时间】:2021-09-17 06:18:48
【问题描述】:

父进程通过调用 fork() 系统调用来创建子进程。父母和 子进程运行相同的程序,因为 fork 创建父进程的精确副本。是吗 子进程可以运行其他程序吗?如果是那怎么办,如果不是那为什么?

【问题讨论】:

  • 查找execv 命令

标签: process operating-system fork


【解决方案1】:

您可以在子组件和父组件中具有不同的实现,因为 fork() 将 0 返回到子组件,将子组件的进程 ID 返回到父组件。

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
void forkexample()
{
    // child process because return value zero
    if (fork() == 0)
        printf("Hello from Child!\n");
  
    // parent process because return value non-zero.
    else
        printf("Hello from Parent!\n");
}
int main()
{
    forkexample();
    return 0;
}

【讨论】:

  • 但它在同一个程序中然后孩子如何运行不同的程序
  • Fork() 完全创建了一个不同的进程。因此,函数名称将相同,但将在不同的进程中调用。因此,您可以执行不同的逻辑。
猜你喜欢
  • 2014-07-04
  • 1970-01-01
  • 2019-10-19
  • 2021-05-11
  • 1970-01-01
  • 2016-02-09
  • 1970-01-01
  • 2022-11-02
  • 1970-01-01
相关资源
最近更新 更多