如何通过管道发送和接收结构变量

How to send and receive a structure variable through via pipe

本文关键字:结构 变量 何通过 管道      更新时间:2023-10-16

嗨,我必须发送和接收一条结构消息,如何使用管道

我的信息是这样的

typedef struct{
char[20] myMessage,
int      count,
char[10] address
} sendMessage;

我知道我可以使用 writefile/readfile 发送字符串消息,但是我如何发送结构变量。

您可以通过通常调用一端的WriteFile和另一端的ReadFile来做到这一点。重要的是要记住,它们可以写入和读取的字节数少于请求的字节数,因此它们应该在循环中使用,直到接收/传输所有数据。

对于固定大小的读写,我有时会发现将管道句柄/描述符重新包装成FILE*结构很方便,因此短读取和短写入由 C 运行时库处理。在 Windows 上,它分两个阶段完成:_open_osfhandle获取句柄的 CRT lowio 文件描述符,然后_fdopen获取 lowio 描述符的FILE*。(警告:使用 _O_BINARY 进行_fdopen以确保没有换行符翻译)。