【问题标题】:C Communication between processC 进程间通信
【发布时间】:2014-04-29 19:39:05
【问题描述】:

我的大学教授要求我用 C 语言开发一个用于 Unix 机器的项目。 我应该做一个足球锦标赛模拟器,其中有一个父母,还有一些孩子(两队之间的每场比赛)。 父级必须创建匹配项,匹配项必须将最终结果告诉父级。

我认为最好的办法是使用 fork() 系统调用和未命名的管道。

你怎么看?

谢谢

【问题讨论】:

  • 未命名的管道可以使用,但请注意管道是单向的。如果你想通过单个文件描述符进行双向通信,你可能想使用 socketpair() 来代替。
  • 那么,我只能使用一个 socketpair() 而不是为每个匹配项/子项使用一个管道?
  • 每个孩子一个套接字对(每个孩子创建两个文件描述符),而不是每个孩子两个管道(每个孩子创建四个文件描述符)。

标签: c linux communication system-calls


【解决方案1】:

您的上述建议是有效的。这种方法会奏效。改用一大块共享内存和互斥锁可能更容易,但这最终是你的决定。我在下面的参考资料中包含了一个使用pthread_mutex 调用和mmap 的工作示例,它应该可以帮助您启动并运行。祝你好运!

参考文献


  1. C 过程、fork() 和互斥锁,访问时间:2014 年 4 月 29 日,<https://stackoverflow.com/questions/19172541/procs-fork-and-mutexes>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多