CreatePipe是創建一個匿名管道,並從中得到讀寫管道的句柄。
基本介紹
- 中文名:CreatePipe
- 外文名:無
- 解釋:創建一個匿名管道
- 學科:計算機學
Syntax,Parameters,VB聲明,
Syntax
BOOL WINAPI CreatePipe( _Out_PHANDLE hReadPipe, _Out_PHANDLE hWritePipe, _In_opt_LPSECURITY_ATTRIBUTES lpPipeAttributes, _In_DWORD nSize);
Parameters
- hReadPipe[out]
返回一個可用於讀管道數據的檔案句柄 - hWritePipe[out]
返回一個可用於寫管道數據的檔案句柄 - lpPipeAttributes[in, optional]
傳入一個SECURITY_ATTRIBUTES結構的指針,該結構用於決定該函式返回的句柄是否可被子進程繼承。如果傳NULL,則返回的句柄是不可繼承的。
該結構的lpSecurityDescriptor成員用於設定管道的安全屬性,如果傳NULL,那么該管道將獲得一個默認的安全屬性,該屬性與創建該管道的用戶賬戶許可權ACLs的安全令牌(token)相同。 - nSize[in]
管道的緩衝區大小。但是這僅僅只是一個理想值,系統根據這個值創建大小相近的緩衝區。如果傳入0 ,那么系統將使用一個默認的緩衝區大小。
VB聲明
Declare Function CreatePipe Lib "kernel32" Alias "CreatePipe" (phReadPipe As Long, phWritePipe As Long, lpPipeAttributes As SECURITY_ATTRIBUTES, ByVal nSize As Long) As Long
說明
創建一個匿名管道
返回值
Long,非零表示成功,零表示失敗。會設定GetLastError
參數表
參數 類型及說明
phReadPipe Long,指定一個變數,設為管道讀入(輸出)端的一個句柄
phWritePipe Long,指定一個變數,設為管道寫入(輸入)端的一個句柄
lpPipeAttributes SECURITY_ATTRIBUTES,指定一個SECURITY_ATTRIBUTES結構,或者傳遞零值(將參數聲明為ByVal As Long,並傳遞零值),以便使用不允許繼承的一個默認描述符
nSize Long,管道緩衝區的建議大小。零表示用默認值
註解
匿名管道不允許異步操作,所以如在一個管道中寫入數據,且緩衝區已滿,那么除非另一個進程從管道中讀出數據,從而騰出了緩衝區的空間,否則寫入函式不會返回