当前位置: 首页 > 面试题库 >

如何将参数传递给fork()创建的进程

汪鸿志
2023-03-14
问题内容

我想在C 中使用 fork() 创建流程的副本。我不知道如何将参数传递给流程的副本。例如,我想将整数传递给流程副本。

或者我该怎么办,如果我有一个循环,我在其中调用fork()并想将唯一的值传递给进程(例如0 … N)

for (int i = 0; i < 4; ++i) {
    fork();
    // pass a unique value to new processes.
}

问题答案:

有趣的fork()是,您产生的每个进程都会自动获取父进程拥有的所有内容的副本,因此,例如,我们想将int传递myvar给两个子进程中的每个,但我希望每个进程都具有与父进程不同的值处理:

int main()
{
    int myvar = 0;
    if(fork())
        myvar = 1;
    else if(fork())
        myvar = 2;
    else
        myvar = 3;

    printf("I'm %d: myvar is %d\n", getpid(), myvar);
    return 0;
}

因此,这样做可以使每个过程都有myvar其自身值的“副本” 。

I'm 8517: myvar is 1
I'm 8518: myvar is 2
I'm 8521: myvar is 3

如果不更改该值,则每个派生进程将具有相同的值。



 类似资料:
  • 问题内容: 我正在A中使用RUN指令安装rpm 但是,我想将值“ 2.3”作为参数传递。我的RUN指令应类似于: 哪里 问题答案: 您正在寻找和指导。这些是Docker 1.9中的新功能。查看https://docs.docker.com/engine/reference/builder/#arg。这将允许您添加到,然后使用构建。

  • 问题内容: 我想将登录用户单击的sa 列表中的传递给twitter bootstrap 。我正在与 angularjs* 一起使用 grails ,其中数据是通过 angularjs 呈现的。 *** 组态 我的grails视图页面是 我的是 所以,我怎么能传递到? 问题答案: 我尝试如下。 我在 鼓励 按钮上打电话给angularjs控制器, 我设置的从angularjs控制器。 我提供了一个p

  • 问题内容: 谁能建议我如何将参数传递给线程? 另外,它如何用于匿名类? 问题答案: 你需要将构造函数中的参数传递给Runnable对象: 然后调用它:

  • 问题内容: 这似乎是一个愚蠢的问题,但是我是这个话题的新手。我正在致力于关于节点js的承诺。我想将参数传递给Promise函数。但是我不知道。 而功能类似于 问题答案: 将Promise包裹在一个函数中,否则它将立即开始工作。另外,您可以将参数传递给函数: 然后,使用它: ES6: 用:

  • 问题内容: 我想将maven命令行参数传递给POM.xml,以便我可以将这些值用于构建目的中的其他目的。 问题答案: 经过一些搜索,我们可以以不同的方式提供参数,我发现一些有用的 … 实际上,在我的应用程序中,我需要保存并提供SVN版本作为参数,因此我已经按照上述方法实现了。 在运行构建时,我们需要为这些参数提供值,如下所示。 我在这里供应 它为我工作。谢谢

  • 问题内容: 以下作品: 垃圾邮件 但是,如果拿来争论呢? TypeError:spam()恰好接受1个参数(给定0) 鉴于我无权访问函数本身,而只能访问代码对象,执行该函数时如何将参数传递给该代码对象?评估可能吗? 编辑:由于大多数读者倾向于不相信这样做的用处,请参见以下用例: 我想将小的Python函数保存到文件中,以便可以从其他计算机上调用它们。(在这里不必说这个用例会严重限制可能的功能。)腌