win32 WriteFile

参考网址:

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)

猜你喜欢

转载自blog.csdn.net/wowocpp/article/details/80519621