將資料寫入資料流。
語法
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 的範例。