Tag: named pipes

ERROR_IO_PENDING后的多个WriteFile

在我的应用程序中,当另一个Write操作在命名管道上挂起时,我正在测试WriteFile的行为。 管道处于消息模式(不是字节模式)。 为了使写入操作挂起,我保持命名管道的缓冲区非常小,并且客户端发送的数据多于缓冲区大小。 通过这种方式,我在客户端获得挂起的写操作。 我在服务器端面临以下问题: 使用ERROR_MORE_DATA失败ReadFile 。 它会更改缓冲区的内容,但不会更改接收的字节数。 服务器代码 //file server.cpp #include #include #include #include #define CONNECTING_STATE 0 #define READING_STATE 1 #define WRITING_STATE 2 #define INSTANCES 4 #define PIPE_TIMEOUT 5000 #define BUFSIZE 3 #define BUFSIZE2 1000 typedef struct { OVERLAPPED oOverlap; HANDLE hPipeInst; TCHAR chRequest[BUFSIZE2]; DWORD cbRead; DWORD cbReadSoFar; TCHAR chReply[BUFSIZE2]; DWORD cbToWrite; DWORD dwState; […]

为什么管道在Windows / unix / linux中被认为是危险的?

为什么管道被认为是危险的? 可以采取哪些措施来避免这些安全问题? 我最感兴趣的是Windows,但如果您有其他操作系统信息,请提供。