fseek(3)

이름
fgetpos, fseek, fsetpos, ftell, rewind - 스트림의 위치를 재배치 시킨다.

라이브러리
표준 C 라이브러리 (libc, -lc)

요약
#include <stdio.h>

int fseek(FILE *stream, long offset, int whence);
long ftell(FILE *stream);

void rewind(FILE *stream);

int fgetpos(FILE *restrict stream, fpos_t *restrict pos);
int fsetpos(FILE *stream, const fpos_t *pos);

설명
fseek() 함수는 stream이 가리키는 스트림을 위한 파일 위치 지정자를 설정한다. 바이트로 측정되는 새 위치는 whence가 지정하는 위치에 offset 를 더하여 얻어진다. 만일 whence 를 SEEK_SET, SEEK_CUR, 또는 SEEK_END로 설정한다면, 오프셋은 각각 파일의 시작, 현재 위치 지정자, 또는 EOF와 관계가 된다. fseek() 함수의 연속적인 호출은 스트림을 위한 EOF 지정자를 지우고 같은 스트림에서 ungetc(3) 함수의 효과를 원상태로 돌린다.

ftell() 함수는 stream이 가리키는 스트림을 위해 파일 위치 지정자의 현재 값을 얻는다.

rewind() 함수는 stream 이 가리키는 스트림을 위한 파일 위치 지정자를 파일의 시작으로 설정한다. 다음은:

    (void) fseek(stream, 0L, SEEK_SET)

스트림을 위한 에러 지정자도 지운다는 것을 제외하고 같다. (clearerr(3)).

fgetpos() 와 fsetpos() 함수는 ftell() 과 fseek() 과 동일하게 선택할수 있는 인터페이스이며 (whence를 SEEK_SET로 설정), pos가 가리키는 객체나 객체에서 파일 오프셋의 현재 값을 설정하고 저장한다. 몇몇 비-UNIX 시스템에서 fpos_t 객체는 복잡한 객체이며 이들 루틴들은 호환성을 위해 텍스트 스트림을 재배치시키는 유일한 방법이다.

If the stream refers to a regular file and the resulting stream offset is beyond the size of the file, subsequent writes will extend the file with a hole, up to the offset, before committing any data. See lseek(2) for details on file seeking semantics.

반환값
The rewind() function returns no value. Upon successful completion, fgetpos(), fseek(), fsetpos() return 0, and ftell() returns the current offset. Otherwise, -1 is returned and errno is set to indicate the error.

에러

EINVAL
    The whence argument to fseek() was not SEEK_SET, SEEK_END, or SEEK_CUR. Or: the resulting file offset would be negative.

ESPIPE
    The file descriptor underlying stream is not seekable (e.g., it refers to a pipe, FIFO, or socket).

함수 fgetpos(), fseek(), fsetpos(), 그리고 ftell() 은 실패할수 있으며 이때 루틴 fflush(3), fstat(2), lseek(2), 그리고 malloc(3)을 위해 지정된 에러중 하나로 errno 를 설정한다.

속성
이 섹션에서 사용되는 용어에 대한 설명은 attributes(7)을 참조하십시오.
상호 작용 | 속성 | 번호
fseek(), ftell(), rewind(), fgetpos(), fsetpos() | Thread safety | MT-Safe

표준
C11, POSIX.1-2008.

이력
POSIX.1-2001, C89.

추가 참조
lseek(2), fseeko(3)

번역
이 매뉴얼 페이지의 한국어 번역은 다음에 의해 편집되었습니다: 정강훈 <skyeyes@soback.kornet.net>

이 번역은 무료 문서입니다. 저작권 조건에 대해서는 GNU General Public License 버전 3 (https://www.gnu.org/licenses/gpl-3.0.html) 이상을 읽으십시오. 책임이 없습니다.

이 매뉴얼 페이지의 번역에서 오류를 발견하면 translation-team-ko@googlegroups.com 로 이메일을 보내주십시오.