管道类型消息检测

时间:2015-04-21 19:49:02

标签: c unix pipe fork

在某些C代码中,我有一个父进程通过PIPE通道从子进程读取消息。 子进程将发送0到9之间的整数值或字符串(char *)消息 在父进程中,如何测试子进程是否已发送整数值或字符串(char *)消息?

非常感谢!

1 个答案:

答案 0 :(得分:1)

管道使用非结构化二进制数据(就像所有其他文件一样),因此告诉的唯一方法是传递更多数据,例如指示接下来要发送的内容的标志。如果您正在开展大型项目,可以使用像Google协议缓冲区这样的序列化系统来简化您的生活。

当然,在您的特定情况下,如果消息是整数,您可以依赖消息的第一个字节为零,但它是一个作业级解决方案:)