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 の例を参照してください。

関連項目

ストリーム入出力
_setmode
fread
_fwrite_nolock
_write