【发布时间】:2015-04-21 19:49:02
【问题描述】:
在某些 C 代码中,我有一个父进程通过 PIPE 通道从子进程读取消息。
子进程将发送 0 到 9 之间的整数值或字符串 (char *) 消息。
在父进程中,如何测试子进程是否发送了整数值或字符串(char *)消息?
非常感谢!
【问题讨论】:
在某些 C 代码中,我有一个父进程通过 PIPE 通道从子进程读取消息。
子进程将发送 0 到 9 之间的整数值或字符串 (char *) 消息。
在父进程中,如何测试子进程是否发送了整数值或字符串(char *)消息?
非常感谢!
【问题讨论】:
管道处理非结构化二进制数据(就像所有其他文件一样),因此唯一的判断方法是传递更多数据,例如指示接下来将发送什么的标志。如果您正在处理一个大型项目,您可以使用像 Google 的 Protocol Buffers 这样的序列化系统来简化您的工作。
当然,在您的特定情况下,如果消息是整数,您可以依赖消息的第一个字节为零,但这是一个家庭作业级解决方案:)
【讨论】: