参考网址:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365747(v=vs.85).aspx
写数据到指定的文件或者设备。
这个函数被设计为同步的或者异步的操作。
一个类似的用来只针对异步操作的函数,名字是WriteFileEx
函数原型:
BOOL WINAPI WriteFile(
_In_ HANDLE hFile,
_In_ LPCVOID lpBuffer,
_In_ DWORD nNumberOfBytesToWrite,
_Out_opt_ LPDWORD lpNumberOfBytesWritten,
_Inout_opt_ LPOVERLAPPED lpOverlapped
);
hFile
文件句柄
该句柄必须是可写的
对于异步的写操作,hFile 可以是CreateFile函数使用FILE_FLAG_OVERLAPPED标志打开的,或者是socket 或者accept 函数返回的。
lpBuffer [in]
指针指向要写到文件或者设备的数据的缓冲区
在写的工程中,buffer需要保持有效。用户在写操作完成之前 不能使用这个buffer。
nNumberOfBytesToWrite [in]
要写到文件中的字节数
这个值如果是0,表示是一个空写操作,空写操作的行为和底层文件系统或者通信技术有关。
lpNumberOfBytesWritten [out, optional]
通过同步操作已经写入文件的字节数。WriteFile在做任何工作之前会将该值初始化为0.
作为异步操作的时候,为了避免错误操作,可以将这个值设置为NULL
只有lpOverlapped 不为NULL的时候,这个参数才能够是NULL。
lpOverlapped [in, out, optional]
一个指向OVERLAPPED structure的指针,
当文件是使用FILE_FLAG_OVERLAPPED标志打开的时候,需要这个指针。
其他的情况下,这个指针设置为NULL
返回值
如果函数正确返回,返回值是非0(TRUE)
如果函数失败,或者正在进行异步操作,返回(FALSE)