我可以 fork 进程并执行内部函数吗?

标签 c fork exec

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

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

最佳答案

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

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。

关于我可以 fork 进程并执行内部函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52032543/

相关文章:

c - 在 ARM 上使用 syslog() 的 C 程序中处理 SIGINT 会导致程序执行向后跳几行

python - 学习算法

c - Linux中 "system"和 "exec"的区别?

c - C 中的 Fork() 程序

php - PHP 中的 system()、exec() 和 shell_exec() 有什么区别?

c - XGetImage 需要很长时间才能运行

c - C语言中的指针和数组

c - C语言中如何用fork()终止多个进程?

batch-file - gradle:执行任务 "type:Exec",其中包含许多带空格的参数

php - 用php打开可执行文件