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

我想在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

如果您没有更改值,则每个fork的进程将具有相同的值.

相关文章
相关标签/搜索