【问题标题】:Forks and parent child communication分叉和父子通信
【发布时间】:2017-10-02 22:31:34
【问题描述】:

我是 Linux 系统命令和 IPC 相关主题的新手。

我有一个孩子计算给定数字的阶乘,然后将结果传回给父母。然后父级将打印接收到的输出。

我必须使用任何类型的PIPES来做到这一点。 至此,我对不同类型的 IPC 进行了少量研究。我考虑的两条路线是 File Mapping 和 Mail Slot。 但是考虑到这项任务的基础性,它们似乎都太复杂了。

有哪些简单的方法可以解决这个问题?

【问题讨论】:

  • 解决这个问题的简单方法是使用管道。如果存在反对使用标准解决方案的人为约束,请移除该约束。如果您真的想在不使用管道的情况下执行此操作,请查看共享内存和/或套接字。
  • 这是一个类,类要求声明不使用管道进行此分配。感谢您的建议,将调查!
  • 此类问题的通常答案是“无论你在课堂上学到了什么”,但我们不知道你在课堂上学到了什么。如果由我决定并且我想找点乐子,我会使用信号量,每个可能的答案都有一个。
  • @MarkPlotnick 到目前为止,我只了解了每个变体的概念以及它为什么有用。我正在寻找的是易于实现的东西。我会研究信号量!
  • 有内存映射、posix 共享内存、信号量、unix 套接字、IP 套接字,甚至可以读写同一个文件。阅读他们的文档并决定你想要什么。

标签: c++ linux process fork ipc


【解决方案1】:

如果您的程序正在分叉子代,请在父代中创建一个共享位置,然后让子代在该空间中填写结果,因为在执行@987654321 时,父代和子代都可以访问所有内存@。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2011-01-17
    • 2012-12-19
    • 2017-12-26
    • 2018-12-22
    • 1970-01-01
    • 2017-03-14
    相关资源
    最近更新 更多