gpt4 book ai didi

C: exec binary without main with exec*() 系统调用

转载 作者:太空宇宙 更新时间:2023-11-04 08:18:11 25 4
gpt4 key购买 nike

我对 exec() 和 fork() 系统调用有疑问。我想要完成的事情:一个小程序,其中有 3 个“主要”进程,其中一个执行 fork() N 次(用户选择)并且每个 child 向其他 2 个进程发送消息以同步和做一些事情。

所以:main.c:创建队列、sem 和其他 ipc 东西。然后 fork(2 次)和 exec(p1)/(p2)。如果一切正常,它会根据用户的选择开始 fork N 次。

p1.c:附加到 main 创建的 ipc,等待来自“main.c”的子进程之一的消息

p2.c:附加到 ipc...等待来自“main.c”或“p2.c”的子项之一的消息

我现在在做什么:我写了 3 个 C 文件,每个都有一个主要功能,“第一个主要”保留所有 IPC 结构,然后 fork 并执行和 execve() 以启动其他 2 个程序.

一切似乎都正常,第一个运行并正确 fork ,execve() 运行其他 2 个程序,这些程序可以附加到第一个程序创建的 ipc 结构。很棒,但是我有 3 个程序,3 个主程序,当然我不能只构建一个可执行文件。

所以我的问题是:如何在没有 main 的情况下使用 syscall exec 加载(如果可能的话)程序?如果不可能,我应该如何编写我的程序结构?

我希望很清楚,如果需要我可以编写代码,但现在只有几行..

谢谢!!

最佳答案

将 main 替换为 main_p1 和 main_p2 并简单地调用它们而不是调用 exec。

关于C: exec binary without main with exec*() 系统调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34609416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com