lseek

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 는 에러를 가리키도록 설정된다.

에러
       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 값들을 다음
       매크로로 대신해라:


       c c l l.  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일



Linux                              1998년 1월 17                          LSEEK(2)