LSEEK
Section: 시스템 콜들
(2)
Updated: 1998년 1월 17
Index
Return to Main Contents
이름
lseek - 읽기/쓰기 파일 변위(offset)을 재배치한다.
사용법
#include <sys/types.h>
#include <unistd.h>
off_t lseek(int fildes, off_t offset, int whence);
설명
lseek
함수는 파일 기술자
fildes
의 변위를 다음과 같이 지시어
whence
에 따라 인자
offset
으로 재배치한다:
- SEEK_SET
-
변위은
offset
바이트로 설정한다.
- SEEK_CUR
-
변위는 현재 위치 더하기
offset
바이트로 설정한다.
- SEEK_END
-
변위는 파일 크기 더하기
offset
바이트로 설정한다.
lseek
함수는 파일의 변위를 파일의 끝에 존재하는 끝 넘어로 설정할수 있다.
만일 데이터가 이 시점에서 나중에 쓰여진다면, 그 사이에 연속적으로 읽은
데이터는 0 바이트들을 반환한다.(데이터가 실제로 그 사이에 쓰여질때까지. )
반환값
성공시,
lseek
는 파일 시작에서 바이트로 측정된 것처럼 결과 변위 위치를 반환한다.
그렇지 않으면, (off_t)-1 의 값이 반환되며
errno
는 에러를 가리키도록 설정된다.
에러
- EBADF
-
Fildes
가 열려진 파일 기술자가 아니다.
- ESPIPE
-
Fildes
가 pipe, socket 또는 FIFO와 관련되어 있다.
- EINVAL
-
Whence
가 적당한 값이 아니다.
호환
SVr4, POSIX, BSD 4.3
RESTRICTIONS
몇몇 장치들은 이동이 불가능하며 POSIX는 지원되어야 하는 장치들을 지정하지
않았다.
리눅스 특정 제한들: tty 장치에서 lseek의 사용은 ESPIPE 를
반환한다. 다른 시스템들은 쓰여진 문자수를 반환하며 SEEK_SET을 카운터로 설정하여 사용한다.
몇몇 장치들, 즉 /dev/null 는 ESPIPE 에러를 야기하지 않지만
값이 정의되지 않은 포인터를 반환한다.
주의
whence
의 문서 사용은 잘못된 영어이지만, 역사적 이유때문에 유지된다.
예전 코드로 바꿀때, whence 값들을 다음 매크로로 대신해라:
| old | new
|
| 0 | SEEK_SET
|
| 1 | SEEK_CUR
|
| 2 | SEEK_END
|
| L_SET | SEEK_SET
|
| L_INCR | SEEK_CUR
|
| L_XTND | SEEK_END
|
SVR1-3 는 off_t 대신에 long 를 반환하며,
BSD 는 int 를 반환한다.
관련 항목
dup(2),
open(2),
fseek(3)
역자
정강훈 <skyeyes@soback.kornet.net>, 2000년 9월 16일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- RESTRICTIONS
-
- 주의
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:06:59 GMT, March 25, 2004