我正在编写一个使用 namedpipe 进行进程间通信的 win32 应用程序。当一个进程尝试 writeFile 时,它会写入结构(告诉其他进程多少字节和其他信息),然后通过再次调用 WriteFile 来写入实际数据。
另一个进程,在读取的时候,先读取第一个msg,然后根据从第一个msg得到的信息读取第二个msg。
我的问题是:
如果服务器进程正在写入数据,但客户端进程还没有读取数据,那么客户端读取时是否有可能丢失第一个 msg?例如,当服务器第二次调用WriteFile写入实际数据时,之前的msg会被覆盖吗?
有没有使用 waitforsingleobject 同步的最佳解决方案?
谢谢