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++ |
---|---|---|---|
+ |
+ |