본문 바로가기

공부/c언어

파일 처리 함수(c언어)

반응형

파일 구조

1. 핸들을 인자로 하여 파일을 쓰거나 읽는 함수호출
write(file*)

 

2. OS는 핸들에 해당하는 커널오브젝트의 내용을 보고

파일 물리적 위치에 연결되어 있는 스트림을 통해서 파일에 정보를 전달하거나 받아옴

 

3. 스트림 중간에 있는 버퍼에 정보를 읽거나 쓰기를 하고 한번에 정보를 모아서 보내거나 읽어옴

 

4. OS는 파일에 변화가 생긴 내용에 대해서 커널오브젝트의 파일에 관한 정보에 정보를 갱신함

 

fopen함수

FILE* fopen(const char*, const char*);

첫번째 인자 : 처리하려는 파일 이름

두번째 인자 : 처리하려는 파일 처리의 종류(모드)

 

파일을 열면 무조건 파일포인터는 0을 가리킴

 

모드 종류 

 모드

의미 

읽기 모드로 파일을 열음

파일이 없으면 에러

w

쓰기 모드로 파일을 열음

파일이 없으면 새로 만들고, 기존의 파일이 있으면 그 이전의 내용은 없어지고 파일의 처음부터 쓴다. 이 모드로는 파일 내용을 읽을 수 없다

추가 쓰기 모드로 파일을 열음

파일이 없으면 새로 만들고, 기존의 파일이 있으면 그 파일의 가장 뒤부터 파일에 추가

r+

읽기와 쓰기 모드로 파일을 열음

파일이 없으면 에러발생

w+

읽기와 쓰기 모드로 파일을 열음

파일이 없으면 새로 만들고, 기존의 파일이 있으면 그 이전의 내용은 없어지고 파일의 처음부터 씀

a+

 추가 쓰기 모드로 파일을 열음

파일이 없으면 새로 만들고, 기존의 파일이 있으면 그 파일의 가장 뒤부터 파일에 추가함

파일의 어느 곳이나 읽기는 가능하나 쓰기는 추가적으로만 가능



















입출력 함수

자료

모드

종류

표준입출력

파일입출력

문자

텍스트

입력

int getchar(void)

int getc(FILE*)

int fgetc(FILE*)

이진

출력

int putchar(int)

int putc(int, FILE*)

int fputc(int, FILE*)

문자열

텍스트

입력

char* gets(char*)

char* fgets(char*, int, FILE*)

출력

int puts(const char*)

int fputs(const char*, FILE*)

형식자료

텍스트

입력

int scanf(const char*, •••)

int fscanf(FILE*, const char*, •••)

출력

int printf(const char*, •••)

int fprintf(FILE*, const char*, •••)

블록

이진

입력

 

size_t fread(void*, size_t, size_t, FILE*)

출력

 

size_t fwrite(void*, size_t, size_t, FILE*)

정수

이진

입력

 

int getw(FILE*)

출력

 

int putw(int, FILE*)























함수 

기능 

 int remove(const char*)

파일 삭제 

 int rename(const char*, const char*)

 파일 이름 바꾸기

 int fseek(FILE*, long, int)

 파일 포인터 이동 함수

 long ftell(FILE*)

 파일의 현재 파일 포인터를 반환 함수

void rewind(FILE*)

 파일의 현재 포인터를 0 위치로 이동 함수

 int remove(const char*)

 파일 삭제

 int rename(const char*, const char*)

 파일 이름 바꾸기

 

 

반응형