C言語のseek関数の呼び出し方
C言語では、ファイルを指し示すポインタの位置を設定するためにseek関数が用いられます。その呼び出し方は次の通りです。
#include <stdio.h>
int fseek(FILE *stream, long offset, int origin);
streamはファイルへのポインタ、offsetは移動するバイト数を指定するオフセット、originは先頭から何バイト目かを指定する開始位置で、以下の値を取ります。
- SEEK\_SET: ファイルの先頭からのオフセット
- SEEK_CUR:現在の位置からのオフセットを計算する。
- SEEK_END:ファイルの末尾からのオフセット量
seek 関数が 0 を返せば成功、0 以外を返せば失敗です。
これは一例です
#include <stdio.h>
int main() {
FILE *file = fopen("example.txt", "r");
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}
// 设置文件指针的位置为从文件开头偏移5个字节
fseek(file, 5, SEEK_SET);
// 读取文件指针当前位置的字符
int ch = fgetc(file);
printf("%c\n", ch);
fclose(file);
return 0;
}
冒頭の例では、example.txtという名のファイルをまず開いています。次に、fseek関数を使ってファイルの先頭から5バイトの位置にファイルポインタを移動しています。最後に、fgetc関数を使ってファイルポインタの現在位置にある文字を読み出し、表示しています。