首页 > 解决方案 > 我可以分叉进程并执行内部函数吗?

问题描述

我真的搜索过这个,我能找到的只是你可以执行 execvp() shell 命令。

我想知道我是否可以分叉进程,然后让它们运行程序内部的函数?(如,我在代码中自己编写的一个函数)

标签: cforkexec

解决方案


当然,您可以让子执行一个函数,而父在同一个可执行文件中执行不同(甚至相同)的函数。

pid_t pid = fork();
if (pid < 0)
    err_syserr("failed to fork: ");
else if (pid == 0)
    be_childish();
else
    be_parental();

您可以根据需要添加be_childish()参数be_parental()。在代码执行之前fork(),您可以创建管道或套接字以在它们之间进行通信——或信号量、共享内存或任何您想要的 IPC。


推荐阅读