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

标签 c++ visual-studio-2008 ipc

嗨,我必须发送和接收结构化的消息,这怎么可能使用管道

我的留言是这样的

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

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

最佳答案

您可以通过通常调用一侧的 WriteFile 和另一侧的 ReadFile 来完成。请务必记住,它们可以写入和读取的字节数少于请求的字节数,因此应在循环中使用它们,直到接收/传输所有数据。

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

关于c++ - 如何通过管道发送和接收结构变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14610998/

相关文章:

c++ - 使用 C++ 进行简单的字符串解析

c++ - 我如何对简单多边形进行 delaunay 三角剖分并找到它在 cgal 中任何三角形的邻居

c++ - LNK2005 : delete already defined error in VC++

c++ - 在没有同步机制的情况下,不同线程同时读取单个 c++ std::map 对象是否安全?

c - Linux:是否可以在进程之间共享代码?

c++ - 如何从一个进程向多个其他进程发出信号?

c++ - Qt 项目的通用 Makefile

java - 如何在 openGL 中制作光球?

c# - 如何将日期添加到 C# 片段中

c# - 如何将消息从一个桌面应用程序传递到同一台机器上运行的另一个应用程序?