共用方式為


fwrite

將資料寫入資料流。

語法

size_t fwrite(
   const void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);

參數

buffer
要寫入之資料的指標。

size
項目大小 (位元組)。

count
要寫入之項目的最大數量。

stream
FILE 結構的指標。

傳回值

fwrite 會傳回函式寫入的完整項目數目,如果發生錯誤,可能小於 count 。 此外,如果發生錯誤,就無法判斷檔案位置指標。 stream如果 或 buffer 為 Null 指標,或如果在 Unicode 模式中指定了要寫入的奇數位節,則函式會叫用無效的參數處理程式,如參數驗證中所述。 若允許繼續執行,此函式會將 errno 設為 EINVAL,並傳回 0。

備註

fwrite 函式會寫入最多 count 的項目數,且每個項目均為 size 的長度,並從 buffer 寫入至 stream。 與 stream 相關聯的檔案指標(如果有的話)會隨著寫入 fwrite 位元組數目而遞增。 如果在 stream 文字模式中開啟,則每個換行字元會取代為歸位字元換行字元組。 這種取代不會對傳回值產生影響。

若在 Unicode 轉譯模式中開啟 stream,例如,透過呼叫 stream 開啟 fopen,並使用包含 ccs=UNICODEccs=UTF-16LEccs=UTF-8 的模式參數;或者此模式已透過使用 _setmode 以及包含 _O_WTEXT_O_U16TEXT_O_U8TEXT 的模式參數變更為 Unicode 轉譯模式:則 buffer 會解譯為包含 UTF-16 資料之 wchar_t 陣列的指標。 嘗試以此模式寫入奇數位元組會導致參數驗證錯誤。

因為此函式會鎖定呼叫線程,所以它是安全線程。 如需非鎖定版本,請參閱 _fwrite_nolock

根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態

需求

函式 必要的標頭
fwrite <stdio.h>

如需相容性詳細資訊,請參閱相容性

範例

請參閱 fread 的範例。

另請參閱

資料流 I/O
_setmode
fread
_fwrite_nolock
_write