如何在c中使用child进程

How to use child process in c

我在弄清楚如何使用在 fork() 中创建的活动 child 进程时遇到问题。我从另一个终端看到它们仍然处于活动状态,直到我执行退出成功。例如,如果我想说:我想使 pid 为 10243 的 child 进程此时处于活动状态,请执行此方法。我想在所有 children 初始化之后调用该方法,所以在 fork 之后。我必须输入 execvp () 吗? execvp (methodName (a))?

编辑:我将尝试添加类似的代码以便更具体

所以假设我做了一个循环,我创建了 n child

            
        switch (pid = fork()) {     
            case -1:
                /* Handle error */
                fprintf(stderr, "%s, %d: Errore (%d) nella fork\n",
                __FILE__, __LINE__, errno);
                exit(EXIT_FAILURE);
            case 0: 

                    //here I have saved the pid of the child process        
                
            break;
            
        
            default:

            /* PARENT CODE: nothing here */
            wait(NULL);     
            exit(0);            

            break;
        }
    }```

So at that point I have created n number of child process. Now I want, for example, that the child with the pid 10342 do a method called "method1()", and the child with the pid 10343 do a method called "method2()".

How can I say that? Is that possibile? Because I need first to create all the child and then use them while the "main process" is in stand by with an infinte cycle. Like: 

```int u = 0;
    while(u == 0){         I will handle the end of this with a signal 
        
        }
    }
exit(EXIT_SUCCESS);

来自 fork 的手册页:

The child process and the parent process run in separate memory spaces. At the time of fork() both memory spaces have the same content.

也就是说,内存中的所有函数都可以被父进程和子进程调用,但是没有办法,一个进程可以调用另一个进程内存中的函数space .

为此你需要 IPC(进程间通信)。

附录:

fork 后,您可以 运行 您喜欢的每个函数(在子进程中 - 我希望您知道那是什么意思,如果不知道,提供的 link 将帮助您).但是对于 'make' 子进程处于活动状态并且 运行 某种方法只能通过 IPC。