【发布时间】:2012-10-21 20:11:11
【问题描述】:
我不知道为什么这个管道是无效的。对我来说一切都很好。这只是一个测试,我不写也不读。谁能告诉我怎么了?
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#define BUFSIZE 4096
int main()
{
HANDLE hPipe;
LPTSTR Pipename = TEXT("\\\\.\\pipe\\mypipe");
printf("Start Server\n");
for(;;)
{
hPipe = CreateNamedPipe( Pipename,
PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT,
PIPE_UNLIMITED_INSTANCES,
BUFSIZE,
BUFSIZE,
NMPWAIT_USE_DEFAULT_WAIT,
NULL );
if ( hPipe == INVALID_HANDLE_VALUE )
{
printf("CreatePipe failed");
return 0;
}
CloseHandle(hPipe);
}
return 1;
}
【问题讨论】:
-
使用
GetLastError()判断失败原因。 -
另外,为什么是无限循环?对 CreateNamedPipe 的调用在失败之前是否成功了一次或多次?
标签: windows pipe named-pipes handlers