Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

fseek() 대 C의 되감기()

<시간/>

fseek()

C 언어의 fseek()는 파일 포인터를 특정 위치로 이동하는 데 사용됩니다. 오프셋과 스트림은 함수 매개변수에 지정된 포인터의 대상입니다. 성공하면 0을 반환하고, 그렇지 않으면 0이 아닌 값을 반환합니다.

다음은 C 언어의 fseek() 구문입니다.

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

다음은 fseek()에서 사용되는 매개변수입니다.

  • 스트림 − 스트림을 식별하기 위한 포인터입니다.

  • 오프셋 − 해당 위치의 바이트 수입니다.

  • 언제 − 오프셋이 추가된 위치입니다.

whence는 다음 상수 중 하나로 지정됩니다.

  • SEEK_END − 파일 끝.

  • SEEK_SET − 파일 시작.

  • SEEK_CUR − 파일 포인터의 현재 위치.

다음은 C 언어의 fseek() 예입니다 -

다음 내용이 포함된 "demo.txt" 파일이 있다고 가정해 보겠습니다. -

This is demo text!
This is demo text!
This is demo text!
This is demo text!

이제 코드를 살펴보겠습니다.

예시

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("demo.txt", "r");
   if(f == NULL) {
      printf("\n Can't open file or file doesn't exist.");
      exit(0);
   }
   fseek(f, 0, SEEK_END);
   printf("The size of file : %ld bytes", ftell(f));
   getch();
}

출력

The size of file : 78 bytes

위 프로그램에서 fopen()을 이용하여 "demo.txt" 파일을 열고 fseek() 함수를 이용하여 포인터를 파일의 끝으로 이동시킨다.

f = fopen("demo.txt", "r");
if(f == NULL) {
   printf("\n Can't open file or file doesn't exist.");
   exit(0);
}
fseek(f, 0, SEEK_END);

되감기()

rewind() 함수는 파일의 위치를 ​​주어진 스트림의 시작 부분으로 설정하는 데 사용됩니다. 값을 반환하지 않습니다.

다음은 C 언어의 rewind() 구문입니다.

void rewind(FILE *stream);

다음은 C 언어의 rewind() 예제입니다.

다음 내용이 포함된 "new.txt" 파일이 있다고 가정해 보겠습니다. -

This is demo!
This is demo!

이제 예를 살펴보겠습니다.

예시

#include<stdio.h>
void main() {
   FILE *f;
   f = fopen("new.txt", "r");
   if(f == NULL) {
      printf("\n Can't open file or file doesn't exist.");
      exit(0);
   }
   rewind(f);
   fseek(f, 0, SEEK_END);
   printf("The size of file : %ld bytes", ftell(f));
   getch();
}

출력

The size of file : 28 bytes

위의 프로그램에서 fopen()을 사용하여 파일을 열고 포인터 변수가 null이면 파일을 열 수 없거나 파일이 존재하지 않는다고 표시합니다. rewind() 함수는 포인터를 파일의 시작 부분으로 이동합니다.

f = fopen("new.txt", "r");
if(f == NULL) {
   printf("\n Can't open file or file doesn't exist.");
   exit(0);
}
rewind(f);