fwrite

ストリームにデータを書き込みます。

構文

size_t fwrite(
   const void *buffer,
   size_t size,
   size_t count,
   FILE *stream
);

パラメーター

buffer
書き込むデータへのポインター。

size
項目サイズ (バイト単位)。

count
書き込む項目の最大数。

stream
FILE 構造体へのポインター。

戻り値

fwrite は、関数が書き込む完全な項目の数を返します。これは、エラーが発生した場合よりも count 小さい場合があります。 また、エラーが発生した場合、ファイル位置インジケーターを特定できません。 null ポインターまたは streambuffer null ポインターの場合、または書き込む奇数バイトが Unicode モードで指定されている場合、「パラメーターの検証」で説明されているように、関数は無効なパラメーター ハンドラーを呼び出します。 実行の継続が許可された場合、この関数は errnoEINVAL に設定し、0 を返します。

解説

fwrite 関数は、それぞれが count の長さの、最大で size 個の項目を、buffer から出力 stream に書き込みます。 (存在する場合) に関連付 stream けられているファイル ポインターは、書き込みバイト fwrite 数だけインクリメントされます。 stream がテキスト モードで開かれた場合、それぞれの改行は復帰と改行の組み合わせで置き換えられます。 この置き換えは、戻り値には影響しません。

stream が Unicode 変換モードで開かれた場合 (たとえば、stream を呼び出して fopenccs=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