void rewind(FILE* stream);
매개변수(인자)
FILE* stream
반환값(리턴값)
* 반환값은 없지만 errno은 있다.
설명
* stream의 위치 표시자를 맨 처음으로 이동시킨다.
* rewind(stdin); 으로 사용시 buffer에 남아있는 것들을 무시하고 사용할 수 있다.
예제
int main()
{
char origin[] = "집에 가고 싶다.";
char dest[] = "진짜루 ";
FILE* stream = fopen("introduce.txt", "w");
fprintf(stream, "%s", origin);
rewind(stream);
fprintf(stream, "%s", dest);
return 0;
}* 안녕하세요
int fseek(FILE* stream, long offset, int origin);
매개변수(인자)
FILE* stream
long offset = origin을 기준으로 얼마나 떨어져 있는지(바이트 단위)
int origin =
origin | 의미 |
SEEK_SET | 파일 처음 |
SEEK_CUR | 위치 표시자의 현재 |
SEEK_END | 파일 끝 |
반환값(리턴값)
성공 시 = 0
실패 시 = 0 아님
설명
* 파일의 위치 표시자를 origin을 기준으로 offset만큼 이동 시킨다.
예제
int main()
{
char a[] = "aaaaaaaaaa";
char b[] = "b";
FILE* stream = fopen("introduce.txt", "w");
fprintf(stream, "%s", a);
fseek(stream, -2, SEEK_CUR);
fprintf(stream, "%s", b);
fseek(stream, 1, SEEK_SET);
fprintf(stream, "%s", b);
fseek(stream, 0, SEEK_END);
fprintf(stream, "%s", b);
return 0;
}
long ftell(FILE* stream);
매개변수(인자)
FILE* stream
반환값(리턴값)
long =
모드 | 반환값의 의미 |
바이너리 모드 | 시작점부터 몇 바이트 떨어져 있는가 |
텍스트 모드 | fseek 함수의 offset에 넣을 수 있는 값 |
에러 | -1L |
설명
* 위치 표시자의 현재 위치를 알려준다.
* errno있음.
예제
int main()
{
char a[] = "한글은 2바이트";
FILE* stream = fopen("introduce.txt", "w");
fprintf(stream, "%s", a);
long position = ftell(stream);
printf("%d", position);
return 0;
}
한글 6개 * 2(바이트) = 12
숫자 1개 * 1(바이트) = 1
공백문자 1개 * 1(바이트) = 1
12 + 1 + 1 = 14
귀여운 그림은 쭐어님이 그리셨습니다.
반응형
'C' 카테고리의 다른 글
구조체 배열과 포인터 (0) | 2020.12.22 |
---|---|
구조체 (0) | 2020.12.22 |
strcpy 함수와 strcat 함수 (2) | 2020.12.20 |
fgets 함수 (0) | 2020.12.20 |
fwrite() 함수 (0) | 2020.12.20 |