lseek

명칭
     lseek — 읽기 / 기록 파일 오프셋(offset) 위치를 변경한다

프로그램 라이브러리
     Standard C Library (libc, -lc)

서식
     <unistd.h> off_t lseek(int fildes, off_t offset, int whence)

해설
     lseek() 함수는, 지시문 whence 에 따라 파일 기술자 fildes 의 오프셋(offset)를 인수 offset (으)로
     이동합니다. 인수 fildes (은)는 오픈 파일 기술자가 아니면 안됩니다.  lseek() (은)는, 다음과 같이 파일 기술자
     fildes 에 대응하는 파일 위치 포인터를 이동합니다.

           whence 하지만 SEEK_SET 의 경우, 오프셋(offset)는 offset 바이트로 설정됩니다.

           whence 하지만 SEEK_CUR 의 경우, 오프셋(offset)는 현재의 위치에 offset 바이트를 가산한 것으로
           설정됩니다.

           whence 하지만 SEEK_END 의 경우, 오프셋(offset)는 파일의 사이즈에 offset 바이트를 가산한 것이
           됩니다.

     lseek() 함수에 의해, 파일 오프셋(offset)를 파일의 기존의 파일의 끝 (EOF) (을)를 넘는 곳(중)으로 설정할 수
     있습니다.  후에 데이터가 이 점에 써 넣어지면(자), 그것 이후의 갭내의 데이터에 대한 읽기는 (데이터가 실제로 갭내에 기입해질
     때까지) 데이터로서 0 을 돌려줍니다.

     시크 할 수 없는 디바이스도 있습니다. 그러한 디바이스에 대응하는 포인터의 값은 미정도리가 됩니다.

반환값
     처리가 정상적으로 완료하면(자) lseek() (은)는, 파일의 선두로부터 측정한 결과의 오프셋(offset) 위치를 바이트 단위로
     돌려줍니다. 그렇지 않은 경우는 -1 이 돌려주어져 에러를 나타내기 위해서(때문에) errno 하지만 설정됩니다.

에러
     lseek() (은)는 다음의 경우에 처리를 실패해, 파일 위치 포인터는 변경되지 않습니다.

     [EBADF]            fildes 하지만 오픈 파일 기술자가 아닙니다.

     [ESPIPE]           fildes (은)는 파이프, 소켓, 또는 FIFO 와 대응 지을 수 있고 있습니다.

     [EINVAL]           whence 하지만 적절한 값이 아닙니다.

관련 항목
     dup(2), open(2)

버그
     이 문서의 whence 의 사용법은 올바르지 않은 영어입니다만, 역사적인 이유로 유지되고 있습니다.

표준
     lseek() 함수는 ISO/IEC 9945-1:1990 (“POSIX.1”) 에 준거하고 있습니다.

역사
     lseek() 함수는 Version 7 AT&T UNIX 그리고 등장했습니다.