WriteFile是一个函数,可以将数据写入一个文件或者
I/O设备。该函数比fwrite函数要灵活的多,也可将这个函数应用于对通信设备、管道、
套接字以及邮槽的处理。
VB声明
vb返回值
Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError
参数表
参数 类型及说明
hFile Long,一个文件的句柄
lpBuffer Any,参数类型:
指针,指向将写入文件的
数据缓冲区nNumberOfBytesToWrite Long,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的“上一次修改时间”。针对位于远程系统的
命名管道,限制在65535个字节以内
lpNumberOfBytesWritten Long,实际写入文件的字节数量(此变量是用来返回的 )
lpOverlapped OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值)
注解
并不是每种操作系统都支持在任何类型的设备上进行异步操作。windows 95不支持对磁盘文件的重叠读取操作
VC声明
功能说明
从
文件指针指向的位置开始将数据写入到一个文件中, 且支持同步和异步操作,
如果文件打开方式没有指明FILE_FLAG_OVERLAPPED的话,当程序调用成功时,它将实际写入文件的字节数保存到lpNumberOfBytesWriten指明的
地址空间中
如果文件要交互使用的话,当函数调用完毕时要记得调整文件指针
参数说明
HANDLE hFile, 需要写入数据的文件指针,这个指针指向的文件必须是GENERIC_WRITE access 访问属性的文件
LPOVERLAPPED lpOverlapped OVERLAPPED
结构体指针,如果文件是以FILE_FLAG_OVERLAPPED方式打开的话,那么这个指针就不能为NULL
vc返回值
调用成功,返回非0
调用不成功,返回为0
用例:
DWORDdev_write(LPCVOIDbuf,DWORDNumBytes)//写数据 { DWORDwriteaddr=0; if(handle!=INVALID_HANDLE_VALUE) { WriteFile(handle,buf,NumBytes,&writeaddr,NULL); } returnwriteaddr;}