WriteFile

WriteFile

WriteFile是一個函式,可以將數據寫入一個檔案或者I/O設備。該函式比fwrite函式要靈活的多,也可將這個函式套用於對通信設備、管道、套接字以及郵槽的處理。

基本介紹

  • 中文名:WriteFile
  • 特色:支持同步和異步操作
  • 優點:比fwrite函式要靈活的多
  • 性質:函式
VB聲明,vb返回值,參數表,註解,VC聲明,功能說明,

VB聲明

Declare Function WriteFile Lib "kernel32" Alias "WriteFile" (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long

vb返回值

Long,TRUE(非零)表示成功,否則返回零。會設定GetLastError

參數表

參數 類型及說明
hFile Long,一個檔案的句柄
lpBuffer Any,參數類型:指針,指向將寫入檔案的 數據緩衝區
nNumberOfBytesToWrite Long,要寫入數據的位元組數量。如寫入零位元組,表示什麼都不寫入,但會更新檔案的“上一次修改時間”。針對位於遠程系統的命名管道,限制在65535個位元組以內
lpNumberOfBytesWritten Long,實際寫入檔案的位元組數量(此變數是用來返回的 )
lpOverlapped OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打開檔案,這個參數就必須引用一個特殊的結構。那個結構定義了一次異步寫操作。否則,該參數應置為空(將聲明變為ByVal As Long,並傳遞零值)

註解

並不是每種作業系統都支持在任何類型的設備上進行異步操作。windows 95不支持對磁碟檔案的重疊讀取操作

VC聲明

BOOL WriteFile(HANDLE  hFile,//檔案句柄LPCVOID lpBuffer,//數據快取區指針DWORD   nNumberOfBytesToWrite,//你要寫的位元組數LPDWORD lpNumberOfBytesWritten,//用於保存實際寫入位元組數的存儲區域的指針LPOVERLAPPED lpOverlapped//OVERLAPPED結構體指針);

功能說明

檔案指針指向的位置開始將數據寫入到一個檔案中, 且支持同步和異步操作,
如果檔案打開方式沒有指明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;}

相關詞條

熱門詞條

聯絡我們