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



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

我正在使用管道系统调用创建一个未命名的管道来处理父子进程通信。

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

  1. 我只能使用写和读功能发送和接收字符串,对吗?我必须忘记发送结构
  2. 如果我之前的问题的答案是"是",那么将所有信息传输到父进程的正确方法是多次调用函数进行写入和读取

非常感谢!

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

最新更新