fseek()関数の使い方とその理解
fseek() 関数は、C 言語のファイル操作関数で、ファイルポインタの位置を設定する。そのプロトタイプは次の通り。
int fseek(FILE *stream, long offset, int whence);
ストリームは操作対象のファイルへのポインタ、オフセットはoriginからの位置を指定した数値、originはオフセットの基準位置を指定します。戻り値は成功時0、失敗時0以外です。
origin には、以下の値を指定できます。
- SEEK_SET:ファイルの先頭からオフセットの計算を開始する。
- SEEK_CUR: 現在の位置から相対位置を計算
- SEEK_END:ファイル終端からのオフセット
fseek() 関数を使用して、以下の機能を実現できます:
- ファイルポインタを指定された位置にシーク
- ファイルのランダムアクセス、つまり、ファイル内の任意の場所に読み書きができる機能。
- ファイル内の特定の位置を検索します。
たとえば、file.txtというファイルがある場合、fseek()関数を使ってファイルポインタをそのファイルの10バイト目に移動できます。
#include <stdio.h>
int main() {
FILE *fp = fopen("file.txt", "r");
if (fp == NULL) {
printf("文件打开失败!\n");
return 1;
}
fseek(fp, 10, SEEK_SET); // 将文件指针定位到第10个字节处
// 其他操作
fclose(fp);
return 0;
}
fseek()関数は、ファイルが適切なモード(例えば「r」や「w」)で開かれていることを確認してから使用する必要があります。そうでないと、予期しない結果が発生する可能性があります。