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
がテキスト モードで開かれた場合、それぞれの改行は復帰と改行の組み合わせで置き換えられます。 この置き換えは、戻り値には影響しません。
stream
が Unicode 変換モードで開かれた場合 (たとえば、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> |
互換性の詳細については、「 Compatibility」を参照してください。
例
fread
の例を参照してください。