본문 바로가기

컴퓨터/C

C fopen, fclose 파일의 개방과 종료

I. 파일 개방 모드

파일 개방 모드 = 파일 접근 모드 + 데이터 입·출력 모드

1. 파일 접근 모드

모드 의미
r 파일을 읽기 위해서 개방한다. 오로지 읽는 것만 가능하다.
w 데이터를 쓰기 위해 개방한다. 오로지 쓰는 것만 가능하다.
만약에 fopen 함수 호출 시 지정해 준 파일이 존재하지 않으면, 새로운 파일을 생성해서 데이터를 쓰게 된다.
지정해 준 파일이 존재하면, 그 파일의 데이터를 지워버리고 데이터를 쓰게 된다.
a w모드와 달리, 지정해 준 파일이 존재하면 데이터를 지우지 않고 파일의 끝에서부터 데이터를 추가한다.
나머지 특징은 w 모드와 같다.
r+ 파일을 읽고 쓰기 위해 개방한다.
파일이 존재하지 않는 경우, 새로운 파일을 생성한다.
파일이 존재하는 경우, 파일의 데이터를 지우지는 않지만 원래 존재하는 파일의 데이터를 덮어쓰게 된다.
w+ r+ 모드와 달리, 지정해 준 파일이 존재하면 모든 데이터를 지워버리고 데이터를 기록한다.
나머지 특징은 r+와 같다.
a+ r+ 모드와 달리, 지정해 준 파일이 존재하면 파일의 끝에서부터 데이터를 추가한다. (나머지 특징은 r+와 같다).

2. 데이터 입·출력 모드

모드 의미 특징
t 텍스트 모드(text mode) \n 을 \r\n으로 자동 변환
b 2진 모드(binary mode) \n 을 변환하지 않음

\n: Line Feed. 다음 줄로 커서 이동

\r: Carriage Return. 줄의 맨 앞으로 커서 이동

II. 개방과 종료

#include <stdio.h>

int main() {
  int state;
  FILE* file = NULL;

  file = fopen("./test.txt", "wt");
  if(file==NULL) {
    printf("file open error!\n");
    return 1;
  }

  state=fclose(file);
  if(state!=0) {
    printf("file close error!\n");
    return 1;
  }

  return 0;
}

'컴퓨터 > C' 카테고리의 다른 글

C dynamic Allocation 메모리 동적 할당  (0) 2022.11.01
C 메모리  (0) 2022.11.01
C 열거형  (0) 2022.10.31
C 공용체  (0) 2022.10.31
C typedef  (0) 2022.10.30