zl程序教程

您现在的位置是:首页 >  其它

当前栏目

CreatePipe()函数「建议收藏」

函数 建议 收藏 CreatePipe
2023-06-13 09:12:51 时间

大家好,又见面了,我是你们的朋友全栈君。

CreatePipe()函数原型

BOOL CreatePipe(
PHANDLE hReadPipe; //指向管道读句柄
PHANDLE hWritePipe; //指向管道写句柄
LPSECURITY_ATTRIBUTES lpPipeAttributes;  //指向管道安全属性
DWORD nSize; //管道大小
)

SECURITY_ATTRIBUTES结构体

typedef struct _SECURITY_ATTRIBUTES
{ 
   
	DWORD nLength; //结构体大小,可用sizeof取得
	LPVOID lpSecurityDescriptor;
	/*指向一个对象的安全描述符,该安全描述符控制对象的共享, 如果为NULL,则该对象调用进程默认的安全描述符*/
	BOOL bInheritHandle; //能否被新创建的进程继承返回的句柄,若为TRUE则新进程继承该句柄
};
BOOL ReadFile(
HANDLE hFile; //读文件的句柄
LPVOID lpBuffer; //指向从文件存取数据的缓冲区的指针
DWORD nNumberOfBytesToRead; //要从文件读的字节数目
LPDWORD nNumberOfBytesRead; //一个指向读字节数的指针,存放实际从文件读的字节数目
LPOVERLAPPED lpOverLapped; 
/*指向一个OVERLAPPED结构体的指针,若用FILE_FLAGOVERLAPPED打开 hFile句柄文件,则它必须指向OVERLAPPED结构体,否则,赋值为NULL*/
)
while(feof(pfile))
{ 
   
	char s = fgetc(pfile);
	printf("%c",s);
}
DWORD WINAPI ThreadProc(LPVOID lpParameter)
{ 
   
	//线程函数体
}
WaitForSingleObiect
(
HANDLE hHandle;//等待对象句柄,可以指一系列对象,Event,Process,Thread,Semaphore等
DWORD dwMilliseconds;
//等待时间,若为INFINITE则表示一直等待,线程被挂起,
//直到所指对象变为有信号状态;若为0表示函数立即返回
)

WAIT_ABANDONED,当对象为mutex时,若拥有mutex的线程在结束时没有释放核心对象,则会返回该值;

HANDLE WINAPI CreateNamedPipe(
  LPCTSTR lpName, //pipe name
  DWORD dwOpenMode, //pipe open mode
  DWORD dwPipeMode, //pipe-specific modes
  DWORD nMaxInstances, //maximum number of instances
  DWORD nOutBufferSize, //output buffer size
  DWORD nInBufferSize, //input buffer size
  DWORD nDefaultTimeOut, //time-out interval
  LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
HANDLE CreateFile(
 	LPCSTR lpFileName,//指向文件名的指针
    DWORD dwDesiredAccess,// 访问模式(写 / 读)
    DWORD dwShareMode,// 共享模式 
   	LPSECURITY_ATTRIBUTES lpSecurityAttributes,// 指向安全属性的指针
   	DWORD dwCreationDisposition,// 如何创建
    DWORD dwFlagsAndAttributes, // 文件属性 
   	HANDLE hTemplateFile// 用于复制文件句柄 
);

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/159407.html原文链接:https://javaforall.cn