개념 :
1. fseek 함수를 대체 하여 fsetpos를 사용할 수 있다.
2. ftell 함수를 대체 하여 fgetpos를 사용할 수 있다.
3. fpos_t 형 자료를 쓰며 정수를 기록할수 있고 기준 점은 첫 시작 포인터 이다
4. write 모드 에서 사용해야 한다.
5. 원형
int fgetpos(FILE *stream, fpos_t *pos)
int fsetpos(FILE *stream, const fpos_t *pos)
소스코드: main.c
#include <stdio.h>
void main(void)
{
int returnValue = 0;
FILE *write = 0, *read = 0;
fpos_t pos = 0 , move = 0;
char szBuffer[256] = { 0, };
fopen_s(&write, "E:\\300\\113\\file.txt", "w+");
if (write == NULL)
{
puts("fail : create file");
}
else
{
fgetpos(write, &pos);
printf_s("기록 전 파일 포인터의 위치 : %d\n", pos );
fputs("write text", write);
puts("write text");
fgetpos(write, &pos);
printf_s("기록 후 파일 포인터의 위치 : %d\n", pos);
puts("fset pos 를 이용해 파일 위치를 처음 이동");
move = 0;
fsetpos(write, &move);
//returnValue = fseek(write, 6, SEEK_SET);
move = 6;
fsetpos(write, &move);
fgetpos(write, &pos);
printf_s(" fsetpos : move (6), 호출 후 파일 포인터의 위치 : %d\n", pos);
fputs("call fsetpos : 6 ", write);
fgetpos(write, &pos);
printf_s("마지막 포인터 위치 : %d \n", pos);
fclose(write);
// 파일 읽기 모두로 생성하여 확인
fopen_s(&read, "E:\\300\\113\\file.txt", "r");
if (read == NULL)
{
puts("faild read file");
}
else
{
fgets(szBuffer, sizeof(szBuffer), read);
puts(szBuffer);
fclose(read);
}
}
}
결과
#파일포인터구하기,#fsetpos,#fgetpos,#프로그램입문,#c언어,#c언어입문
'Programing - C > C Basic grammar ' 카테고리의 다른 글
115 파일 읽기/쓰기 시 에러 검사하기(ferror) (0) | 2017.12.24 |
---|---|
114 파일 끝에 도달 했는지 검사와 파일 닫기(feof, fclose) (0) | 2017.12.24 |
112 파일 포인터를 내 마음대로(fseek) (0) | 2017.08.16 |
111 파일 포인터를 처음으로 이동(rewind) (0) | 2017.08.11 |
110 파일 포인터의 현재 위치(ftell) (0) | 2017.08.11 |