반응형
#include <stdio.h> int fseek(FILE *stream, long offset, int whence); |
fseek 함수는 스트림에서 파일 포인터를 whence 인수가 지시하는 위치로부터 offset 바이트 만큼 떨어진 위치로 파일 포인터를 이동시킵니다.
whence 인수는 다음과 같은 3개의 기호 상수 또는 상수이어야 합니다.
whence 인수 | 상수 | 설명 |
SEEK_SET | 0 | 파일의 시작 위치 |
SEEK_CUR | 1 | 파일 포인터의 현재 위치 |
SEEK_END | 2 | 파일의 끝 위치 |
파일 포인터가 성공적으로 이동된 경우에는 0을 반환하고, 실패하면 0이 아닌 값을 반환합니다 - fseek 함수는 실제로 파일 포인터가 성공적으로 이동되지 않은 경우에도 0을 반환할 수 있습니다.
참고: lseek, tell, ftell
#define _CRT_SECURE_NO_WARNINGS // Visual Studio
#include <stdio.h>
long filesize(FILE* fp)
{
long curpos, length;
curpos = ftell(fp);
fseek(fp, 0L, SEEK_END); // 파일의 맨 마지막으로 이동
length = ftell(fp);
fseek(fp, curpos, SEEK_SET); // 다시 맨 처음으로 이동
return length;
}
int main()
{
FILE* fp;
if ((fp = fopen("fseek.txt", "w+")) == NULL)
{
printf("파일을 생성할 수 없습니다.\n");
return -1;
}
fprintf(fp, "You are studying coding these days?");
printf("파일 크기: %d bytes\n", filesize(fp));
fclose(fp);
return 0;
}
반응형
'C_C++ > C_라이브러리_함수' 카테고리의 다른 글
(C언어) fwrite: 스트림에 데이터를 씁니다 (0) | 2023.02.10 |
---|---|
(C언어) ftell: 현재 파일 포인터의 위치 알아내기 (0) | 2023.02.10 |
(C언어) fscanf: 스트림에서 지정된 형식으로 데이터를 읽는다 (0) | 2023.02.09 |
(C언어) free: 할당된 메모리 블록을 해제한다 (0) | 2023.02.09 |
(C언어) fread: 스트림에서 데이터를 읽는다 (0) | 2023.02.09 |