fread
freadは、C言語の標準入出力ヘッダーファイル <stdio.h> で宣言されている関数である。 主に、バイナリ形式のファイル入力に使われる。
形式
編集ISO/IEC 9899:1999 では、以下のように定義されている[1]。
- 概要
#include <stdio.h> size_t fread(void * restrict ptr, size_t size, size_t nmemb, FILE * restrict stream);
- 説明
fread
関数は、ptr
が指す配列に、size
で指定された大きさを持つ要素を最大nmemb
個まで、stream
が指すストリームから読み取る。各オブジェクトに対して、fgetc
関数がsize
回だけ呼び出され、読み取った順に、オブジェクトの上に正確に重なっているunsigned char
の配列に結果が格納される。ストリームのファイル位置指示子[注釈 1](定義されている場合)は、正常に読み取られた文字数だけ進む。エラーが発生した場合、ストリームのファイル位置指示子の結果は不定である。要素の一部だけが読み取られた場合も、その値は不定である。- 返却値
fread
関数は、読み取りに成功した要素の数を返すが、読み取りエラーが発生した場合またはEOFに到達した場合に、nmemb
よりも小さくなる。size
またはnmemb
がゼロの場合、fread
はゼロを返し、配列の内容とストリームの状態は変更されない。
テキストモード
編集stream
がテキストモードで開かれていた場合、改行コードCR+LFは読み取りの際にLFで置換される処理系もある[2]。詳細は各処理系のリファレンスを参照のこと。
コード例
編集→詳細は「fwrite」を参照
脚注
編集注釈
編集- ^ ISO/IEC 9899:1999 の position indicator は、JIS X 3010:2003 では「位置表示子」と訳されている。
出典
編集関連項目
編集外部リンク
編集fread(3)
– JM Project Linux Library Functions マニュアル