C_C++/C_라이브러리_함수

(C언어) fseek: 스트림에서 현재 파일 포인터의 위치를 이동시킨다

고니자니 2023. 2. 9. 13:20
반응형
#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;
}

fseek 함수로 파일 크기 알아내기

 

 

반응형