gpt4 book ai didi

c - 使用管道进行进程间通信

转载 作者:行者123 更新时间:2023-11-30 14:28:11 25 4
gpt4 key购买 nike

我认为也许这是一个显而易见的问题,但我只是想通过问你们来确定。

我正在使用管道系统调用来创建未命名管道来进行父子进程通信。

我的子进程需要收集一些信息并将其发送给其父进程。我的问题是:

  1. 我可以只使用写入和读取函数发送和接收字符串吗?我必须忘记发送结构。
  2. 如果我上一个问题的答案是"is",那么将所有信息传输到父进程的正确方法是多次调用函数 write 和 read ?

非常感谢!

最佳答案

你可以使用write()read()struct;使用指向 struct 的指针作为 buf 参数。当您想要在不在同一台计算机上运行的进程之间执行此操作时,您就会遇到问题,并且需要对可移植表示进行编码/解码,以确保在任何地方都以相同的方式理解这些值。这包括识别数据“数据包”的开始和结束,因为管道实际上没有数据包的概念:如果您所做的只是编写一系列相同的struct,那么您只需 write() 即可,读者可以依靠 read() 返回 0 来指示该系列的结束;但是如果您还需要发送其他信息,那么您将需要一个框架协议(protocol)来表示“接下来是这样那样的struct”,“接下来是一个字符串”,等等

关于c - 使用管道进行进程间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6566822/

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