LSEEK(2) | 시스템 콜들 | LSEEK(2) |
이름¶
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 는 에러를 가리키도록 설정된다.
에러¶
호환¶
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 를 반환한다.
관련 항목¶
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2000년 9월 16일
1998년 1월 17 | Linux |