_lseek, _lseeki64_lseek, _lseeki64

지정된 위치로 파일 포인터를 이동합니다.Moves a file pointer to the specified location.

구문Syntax

long _lseek(
   int fd,
   long offset,
   int origin
);
__int64 _lseeki64(
   int fd,
   __int64 offset,
   int origin
);

매개 변수Parameters

fdfd
열려 있는 파일을 참조하는 파일 설명자입니다.File descriptor referring to an open file.

offsetoffset
origin 부터의 바이트 수입니다.Number of bytes from origin.

원본origin
초기 위치입니다.Initial position.

반환 값Return Value

_lseek 는 파일의 시작 부분에서 새 위치의 오프셋 (바이트)을 반환 합니다._lseek returns the offset, in bytes, of the new position from the beginning of the file. _lseeki64 는 64 비트 정수의 오프셋을 반환 합니다._lseeki64 returns the offset in a 64-bit integer. 함수는 오류를 나타내기 위해-1L을 반환 합니다.The function returns -1L to indicate an error. 잘못된 파일 설명자와 같이 잘못된 매개 변수를 전달했거나, origin 에 대한 값이 잘못되었거나, offset 에 지정된 위치가 파일의 시작 이전인 경우 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다.If passed an invalid parameter, such as a bad file descriptor, or the value for origin is invalid or the position specified by offset is before the beginning of the file, the invalid parameter handler is invoked, as described in Parameter Validation. 계속 해 서 실행 하도록 허용한 경우 이러한 함수는 errnoebadf 로 설정 하 고-1l을 반환 합니다.If execution is allowed to continue, these functions set errno to EBADF and return -1L. 검색을 수행할 수 없는 디바이스(예: 터미널 및 프린터)에서는 반환 값이 정의되지 않습니다.On devices incapable of seeking (such as terminals and printers), the return value is undefined.

이 오류 및 다른 오류 코드에 대한 자세한 내용은 _doserrno, errno, _sys_errlist 및 _sys_nerr를 참조하세요.For more information about these and other error codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.

설명Remarks

_Lseek 함수는 fd 와 연결 된 파일 포인터를 원본 에서 오프셋 된 바이트의 새 위치로 이동 합니다.The _lseek function moves the file pointer associated with fd to a new location that is offset bytes from origin. 파일에 대한 다음 작업은 새 위치에서 수행됩니다.The next operation on the file occurs at the new location. origin 인수는 Stdio.h에 정의된 다음 상수 중 하나여야 합니다.The origin argument must be one of the following constants, which are defined in Stdio.h.

원점origin value
SEEK_SETSEEK_SET 파일 시작Beginning of the file.
SEEK_CURSEEK_CUR 파일 포인터의 현재 위치Current position of the file pointer.
SEEK_ENDSEEK_END 파일 끝End of file.

_Lseek 를 사용 하 여 파일의 아무 위치나 파일의 끝을 넘어 포인터의 위치를 변경할 수 있습니다.You can use _lseek to reposition the pointer anywhere in a file or beyond the end of the file.

기본적으로이 함수의 전역 상태는 응용 프로그램으로 범위가 지정 됩니다.By default, this function's global state is scoped to the application. 이를 변경 하려면 CRT의 전역 상태를 참조 하세요.To change this, see Global state in the CRT.

요구 사항Requirements

루틴에서 반환된 값Routine 필수 헤더Required header
_lseek_lseek <io.h>
_lseeki64_lseeki64 <io.h>

호환성에 대한 자세한 내용은 Compatibility을 참조하세요.For more compatibility information, see Compatibility.

라이브러리Libraries

모든 버전의 C 런타임 라이브러리입니다.All versions of the C run-time libraries.

예제Example

// crt_lseek.c
/* This program first opens a file named lseek.txt.
* It then uses _lseek to find the beginning of the file,
* to find the current position in the file, and to find
* the end of the file.
*/

#include <io.h>
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <share.h>

int main( void )
{
   int fh;
   long pos;               /* Position of file pointer */
   char buffer[10];

   _sopen_s( &fh, "crt_lseek.c_input", _O_RDONLY, _SH_DENYNO, 0 );

   /* Seek the beginning of the file: */
   pos = _lseek( fh, 0L, SEEK_SET );
   if( pos == -1L )
      perror( "_lseek to beginning failed" );
   else
      printf( "Position for beginning of file seek = %ld\n", pos );

   /* Move file pointer a little */
    _read( fh, buffer, 10 );

   /* Find current position: */
   pos = _lseek( fh, 0L, SEEK_CUR );
   if( pos == -1L )
      perror( "_lseek to current position failed" );
   else
      printf( "Position for current position seek = %ld\n", pos );

   /* Set the end of the file: */
   pos = _lseek( fh, 0L, SEEK_END );
   if( pos == -1L )
      perror( "_lseek to end failed" );
   else
      printf( "Position for end of file seek = %ld\n", pos );

   _close( fh );
}

입력: crt_lseek.c_inputInput: crt_lseek.c_input

Line one.
Line two.
Line three.
Line four.
Line five.

출력Output

Position for beginning of file seek = 0
Position for current position seek = 10
Position for end of file seek = 57

참조See also

하위 수준 i/oLow-Level I/O
fseek, _fseeki64fseek, _fseeki64
_tell, _telli64_tell, _telli64