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=UNICODE
、ccs=UTF-16LE
或 ccs=UTF-8
的模式參數;或者此模式已透過使用 _setmode
以及包含 _O_WTEXT
、_O_U16TEXT
或 _O_U8TEXT
的模式參數變更為 Unicode 轉譯模式:則 buffer
會解譯為包含 UTF-16 資料之 wchar_t
陣列的指標。 嘗試以此模式寫入奇數位元組會導致參數驗證錯誤。
因為此函式會鎖定呼叫線程,所以它是安全線程。 如需非鎖定版本,請參閱 _fwrite_nolock
。
根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。
需求
函式 | 必要的標頭 |
---|---|
fwrite |
<stdio.h> |
如需相容性詳細資訊,請參閱相容性。
範例
請參閱 fread
的範例。