lseek
io.h:インデックス への移動
ヘッダーファイル
io.h
カテゴリ
入出力ルーチン
プロトタイプ
long lseek(int handle, long offset, int fromwhere); __int64 _lseeki64(int handle, __int64 offset, int fromwhere);
説明
ファイルポインタを移動します。
lseek は,handle に関連付けられたファイルポインタを,fromwhere で指定されたファイル位置から offset バイト後の新しい位置に設定します。fromwhere は,次のシンボル定数の 1 つです(io.h で定義)。
|
|
現在のファイルポインタの位置 |
|
|
ファイルの終わり(EOF) |
|
|
ファイルの先頭 |
戻り値
lseek は,ファイルの先頭からポインタの新しい位置までのオフセット(バイト単位)を返します。エラーが発生した場合は -1 を返し,グローバル変数 errno に次のいずれかの値が設定されます。
|
|
不正なファイルハンドル |
|
|
無効な引数 |
|
|
デバイスの不正なシーク |
シークできないデバイス(ターミナルやプリンタなど)では,戻り値は定義されていません。
例
#include <sys\stat.h>
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
int main(void)
{
int handle;
char msg[] = "This is a test";
char ch;
/* ファイルを作成します */
handle = open("TEST.$$$", O_CREAT | O_RDWR, S_IREAD | S_IWRITE);
/* ファイルにデータを書き込みます */
write(handle, msg, strlen(msg));
/* ファイルの先頭を探します */
lseek(handle, 0L, SEEK_SET);
/* EOF に到達するまで,ファイルから文字を読み取ります */
do
{
read(handle, &ch, 1);
printf("%c", ch);
} while (!eof(handle));
close(handle);
return 0;
}
移植性
| POSIX | Win32 | ANSI C | ANSI C++ |
|---|---|---|---|
|
+ |
+ |