管道类型消息检测

Pipe type message detection

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

非常感谢!

管道处理非结构化二进制数据(就像所有其他文件一样),因此唯一的判断方法是传递更多数据,例如指示接下来将发送什么的标志。如果您正在从事一个大型项目,您可以通过使用像 Google 的 Protocol Buffers 这样的序列化系统来简化您的生活。

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