c - 我可以分叉进程并执行内部函数吗?
问题描述
我真的搜索过这个,我能找到的只是你可以执行 execvp() shell 命令。
我想知道我是否可以分叉进程,然后让它们运行程序内部的函数?(如,我在代码中自己编写的一个函数)
解决方案
当然,您可以让子执行一个函数,而父在同一个可执行文件中执行不同(甚至相同)的函数。
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。
推荐阅读
- java - 将多部分文件上传到 AWS,而不在本地保存
- c# - Unity如何将射击和子弹更新到自定义服务器?
- laravel - Laravel 5.5 通过 eloquent 模型获取数据的问题
- c# - Log4net 处理多租户的最佳实践(1 个输出文件)
- svg - 使用 SkiaSharp.Svg 从 svg 转换为 png 时添加了一些噪音
- javascript - 如何检测用户是否从当前位置滚动了 100px
- python - Pytest:在 python 中模拟/猴子修补内置 input() 和 print() 函数
- perl - 寻找棕枝主日
- javascript - JavaScript:正则表达式在文本中查找数据时间和序列
- python - 将数据从 OpenCV 加载到 CNN