C/C++声明:
BOOL WaitNamedPipe(
LPCTSTR lpNamedPipeName,
DWORD nTimeOut
);
参数:
lpNamedPipeName 要打开的管道名,格式\\\\servername\\pipe\\pipename,如果是本地管道则servername可以使用点“.”。
nTimeOut 等待命名管道的一个实例有效的超时时间,单位毫秒,也可以使用下面两个值中的一个:
NMPWAIT_USE_DEFAULT_WAIT 0x00000000,使用服务端CreateNamedPipe 创建管道时设置的超时时间。
NMPWAIT_WAIT_FOREVER 0xffffffff,一直等到一个命名管道的实例有效才返回。
返回值:
如果在超时时间前管道的一个实例有效,返回非0。
如果超时时间内没有一个有效的实例,返回0。
注意:
如果指定的命名管道没有实例存在,即没有服务端创建该命名管道,函数无视超时等待时间直接返回0。
如果函数执行成功返回TRUE,表示至少有一个命名管道的实例有效,接下来应该使用CreateFile函数打开命名管道的一个句柄,但是CreateFile可能会打开管道失败,因为该实例有可能被服务端关闭或被已经被其他客户端打开。