320x100
1. fseek란?
파일 데이터에서 특정 위치로 이동할 때 쓰는 함수이다.
탐색을 seeking한다고 하는데 file + seeking인거다.
int fseek(FILE *stream, long offset, int whence);
stream : 파일 포인터
offset : 이동할 바이트 수
whence : 기준 위치
return: 성공시 0, 실패시 -1
값 | 설명 |
SEEK_SET | 파일의 시작을 기준으로 offset만큼 이동 |
SEEK_CUR | 현재 위치를 기준으로 offset만큼 이동 |
SEEK_END | 파일의 끝을 기준으로 offset만큼 이동 |
2. 사용 예시
함수 사용 예시
fseek(fp, 0, SEEK_SET); // 파일의 처음으로 이동
fseek(fp, 0, SEEK_END); // 파일의 끝으로 이동
fseek(fp, -10, SEEK_CUR); // 현재 위치에서 10바이트 뒤로 이동
파일 크기 구하기 예시
FILE *fp = fopen("example.txt", "r");
if (fp == NULL) {
printf("파일을 열 수 없습니다.\n");
return 1;
}
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
fseek(fp, 0, SEEK_SET); // 다시 파일 처음으로 이동
fclose(fp);
printf("파일 크기: %ld 바이트\n", size);
특정 위치에서 쓰기 예시 (덮어쓰기)
FILE *fp = fopen("example.txt", "r+");
if (fp == NULL) {
printf("파일을 열 수 없습니다.\n");
return 1;
}
if (fseek(fp, 5, SEEK_SET) != 0) {
printf("파일 위치 이동 실패\n");
fclose(fp);
return 1;
}
fputc('A', fp); // 해당 위치에 'A' 기록
fclose(fp);
반응형
'프로그래밍 > C,C++,C#' 카테고리의 다른 글
[C, C++] 배열과 포인터 차이 (feat. array to pointer decay) (0) | 2024.07.23 |
---|---|
[C,C++,C#] 구조체 padding 제거(feat. 구조체 크기 계산) (0) | 2023.06.04 |
[C,C++,C#] 구조체 메모리 크기 계산 (0) | 2023.06.04 |
[C,C++,C#] 전처리 ##연산자 (0) | 2023.06.04 |
[C] 공용체(union) 변수 사용 (feat. 콜론 연산자) (0) | 2023.04.07 |
댓글