C ライブラリ関数 -fseek()
説明
C ライブラリ関数int fseek(FILE *stream, long int offset, int whence)ストリームのstreamファイル位置を指定されたオフセットにoffset、パラメータ offset は、指定されたwhence位置からシークするバイト数を意味します。
宣言
以下は fseek() 関数の宣言です。
int fseek(FILE *stream, long int offset, int whence)
パラメータ
- stream-- これは、ストリームを識別する FILE オブジェクトを指すポインタです。
- offset-- これは、 whence からのオフセット(バイト単位)です。
- whence-- これは、オフセット offset を追加する開始位置を表します。通常、以下の定数のいずれかが指定されます。
| 定数 | 説明 |
|---|---|
| SEEK_SET | ファイルの先頭 |
| SEEK_CUR | ファイルポインタの現在位置 |
| SEEK_END | ファイルの末尾 |
戻り値
成功した場合はゼロを返し、そうでない場合は非ゼロ値を返します。
例
以下の例は、fseek() 関数の使い方を示しています。
#include <stdio.h>
int main ()
{
FILE *fp;
fp = fopen("file.txt","w+");
fputs("This is example.com", fp);
fseek( fp, 7, SEEK_SET );
fputs(" C Programming Langauge", fp);
fclose(fp);
return(0);
}
上記のプログラムをコンパイルして実行すると、ファイルが作成されます。file.txt、その内容は次のとおりです。最初にプログラムはファイルを作成して書き込みます。This is example.com、しかしその後、7番目の位置で書き込みポインタをリセットし、puts() ステートメントを使用してファイルを書き換えます。内容は次のとおりです。
This is C Programming Langauge
次に、以下のプログラムを使用して上記のファイルの内容を表示してみましょう:
#include <stdio.h>
int main ()
{
FILE *fp;
int c;
fp = fopen("file.txt","r");
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
return(0);
}
その他の拡張
C 標準ライブラリ - <stdio.h>