Cライブラリ関数 -fread()
説明
Cライブラリ関数size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)指定されたストリームからstreamデータを読み取ってptr指し示す配列に格納します。
宣言
以下は fread() 関数の宣言です。
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
パラメータ
- ptr-- これは、最小サイズsize*nmembsize バイトのメモリブロックを指すポインタです。
- size-- これは、読み取る各要素のサイズ(バイト単位)です。
- nmemb-- これは要素の数で、各要素のサイズは size バイトです。
- stream-- これは FILE オブジェクトを指すポインタで、その FILE オブジェクトは入力ストリームを指定します。
戻り値
正常に読み取られた要素の総数が size_t オブジェクトとして返されます。size_t オブジェクトは整数データ型です。総数が nmemb パラメータと異なる場合、エラーが発生したか、ファイルの終端に達した可能性があります。
例
以下の例は、fread() 関数の使用法を示しています。
例
#include <stdio.h>
#include <string.h>
int main()
{
FILE *fp;
char c[] = "This is サンプル";
char buffer[20];
/* 読み書き用にファイルを開く */
fp = fopen("file.txt", "w+");
/* ファイルにデータを書き込む */
fwrite(c, strlen(c) + 1, 1, fp);
/* ファイルの先頭を探す */
fseek(fp, 0, SEEK_SET);
/* データを読み取って表示する */
fread(buffer, strlen(c)+1, 1, fp);
printf("%s\n", buffer);
fclose(fp);
return(0);
}
#include <string.h>
int main()
{
FILE *fp;
char c[] = "This is サンプル";
char buffer[20];
/* 読み書き用にファイルを開く */
fp = fopen("file.txt", "w+");
/* ファイルにデータを書き込む */
fwrite(c, strlen(c) + 1, 1, fp);
/* ファイルの先頭を探す */
fseek(fp, 0, SEEK_SET);
/* データを読み取って表示する */
fread(buffer, strlen(c)+1, 1, fp);
printf("%s\n", buffer);
fclose(fp);
return(0);
}
上記のプログラムをコンパイルして実行してみましょう。これによりファイルが作成されます。file.txt、その後、内容が書き込まれます。This is サンプル。次に、私たちはfseek()関数を使用して書き込みポインタをファイルの先頭にリセットします。ファイルの内容は次のようになります。
This is サンプルその他の拡張
C標準ライブラリ - <stdio.h>