ストリームにデータを書き込みます。
構文
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 の例を参照してください。