ストリームにデータを書き込みます。Writes data to a stream.


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


書き込むデータへのポインター。Pointer to data to be written.

項目サイズ (バイト単位)。Item size, in bytes.

書き込む項目の最大数。Maximum number of items to be written.

FILE 構造体へのポインター。Pointer to FILE structure.

戻り値Return Value

fwriteは、実際に書き込まれたすべての項目の数を返します。エラーが発生すると、 countよりも小さくなる場合があります。fwrite returns the number of full items actually written, which may be less than count if an error occurs. また、エラーが発生した場合は、ファイル位置インジケーターを決定できません。Also, if an error occurs, the file-position indicator cannot be determined. ストリームまたはバッファーが null ポインターの場合、または書き込まれる奇数バイト数が Unicode モードで指定されている場合は、「パラメーターの検証」で説明されているように、関数は無効なパラメーターハンドラーを呼び出します。If either stream or buffer is a null pointer, or if an odd number of bytes to be written is specified in Unicode mode, the function invokes the invalid parameter handler, as described in Parameter Validation. 実行の継続が許可された場合、この関数はerrnoEINVALに設定し、0を返します。If execution is allowed to continue, this function sets errno to EINVAL and returns 0.


Fwrite関数は、バッファーから出力ストリームに、最大サイズの項目を書き込みます。The fwrite function writes up to count items, of size length each, from buffer to the output stream. ストリームに関連付けられているファイルポインター (存在する場合) は、実際に書き込まれたバイト数によってインクリメントされます。The file pointer associated with stream (if there is one) is incremented by the number of bytes actually written. ストリームがテキストモードで開かれている場合、各ラインフィードは復帰とラインフィードのペアで置き換えられます。If stream is opened in text mode, each line feed is replaced with a carriage return-line feed pair. この置き換えは、戻り値には影響しません。The replacement has no effect on the return value.

ストリームが Unicode 変換モードで開かれている場合 (たとえば、 fopenを呼び出し、ccs = Unicodeccs = 16LE、またはccs = utf-8を含むモードパラメーターを使用してストリームを開いた場合、または、 _O_WTEXT_O_U16TEXT、または _O_U8TEXTを含むモードパラメーターを使用してモードを Unicode 変換モードに変更した場合、_setmodeバッファーは utf-16 データを含むの配列へのポインターとして解釈され wchar_t ます。When stream is opened in Unicode translation mode—for example, if stream is opened by calling fopen and using a mode parameter that includes ccs=UNICODE, ccs=UTF-16LE, or ccs=UTF-8, or if the mode is changed to a Unicode translation mode by using _setmode and a mode parameter that includes _O_WTEXT, _O_U16TEXT, or _O_U8TEXTbuffer is interpreted as a pointer to an array of wchar_t that contains UTF-16 data. このモードで奇数バイトの書き込みを試みると、パラメーター検証エラーが発生します。An attempt to write an odd number of bytes in this mode causes a parameter validation error.

この関数は呼び出し元スレッドをロックするため、スレッド セーフです。Because this function locks the calling thread, it is thread-safe. ロックしないバージョンについては、「 _fwrite_nolock」を参照してください。For a non-locking version, see _fwrite_nolock.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.


機能Function 必須ヘッダーRequired header
fwritefwrite <stdio.h>

互換性の詳細については、「互換性」を参照してください。For additional compatibility information, see Compatibility.


fread」の例を参照してください。See the example for fread.

関連項目See also

ストリーム入出力Stream I/O