fopen
#include <stdio.h>
FILE* fopen(const char* filename, const char* mode);
- 파일을 가리키는 FILE 객체를 포인터 형태로 반환
- mode를 통해 입출력 할 작업을 결정
인자
filename
: 파일의 이름
mode
: 파일 접근 모드
- "r" : 읽기 형식으로 파일이 반드시 존재해야 함
- "w" : 쓰기 형식으로 파일이 존재하면 내용을 지우고, 파일이 존재하지 않으면 빈 파일 생성
- "a" : 덧붙이기(append) 형식으로 파일이 존재하지 않으면 새로 생성
- "r+" : 읽기 및 쓰기 형식으로 파일이 반드시 존재해야 함
- "w+" : 읽기 및 쓰기 형식으로 파일이 존재하면 내용을 지우고, 파일이 존재하지 않으면 빈 파일 생성
- "a+" : 읽기 및 덧붙이기(append) 형식으로 파일이 존재하지 않으면 새로 생성
- "-b" : mode 끝에 b를 붙이면 이진 형식으로 open
반환값
- 성공적으로 open한 경우 FILE 객체에 대한 포인터
- open에 실패한 경우 NULL
fclose
#include <stdio.h>
int flocse(FILE* stream);
- open한 파일을 close
- 해당 스트림의 모든 버퍼를 flush
- 함수의 호출이 실패하더라도 인자로 전달된 스트림과 이에 해당하는 파일의 관계는 끊어짐
인자
stream
: 파일을 닫을 스트림의 FILE 객체를 가리키는 포인터
반환값
- 스트림이 성공적으로 닫히면 0
- 실패한 경우 EOF
fseek
#include <stdio.h>
int fseek(FILE* stream, long int offset, int origin);
- 스트림 위치 지정자의 위치를 조정
origin
의 위치부터 offset
을 더한 만큼 위치 지정자를 설정
인자
stream
: 작업을 수행할 스트림의 FILE 객체를 가리키는 포인터
offset
: origin으로 부터 얼마나 떨어진 곳에 설정할 지에 대한 값
origin
: offest에 대해지는 위치로 다음과 같은 매크로 상수 사용
SEEK_SET
: 파일의 시작
SEEK_CUR
: 현재 파일 포인터의 위치
SEEK_END
: 파일의 끝
반한값
fread
#include <stdio.h>
size_t fread(void* ptr, size_t size, size_t count, FILE* stream);
- 스틤에서 데이터 블록을 읽어옴
- 스트림에서
count
개의 원소를 가지는 배열을 읽어옴
- 각 원소의 크기는
size
바이트 이고, ptr
이 가리키는 배열에 넣음
인자
ptr
: count의 크기를 가지는 배열을 가리키는 포인터
size
: 읽어들을 원소의 크기를 바이트 단위로 전달
count
: 읽어들일 원소들의 개수로 각 원소의 크기는 size 바이트
stream
: 데이터를 입력받을 스트림의 FILE 객체를 가리키는 포인터
반환값
- 성공적으로 읽은 경우, 읽은 원소의 개수가
size_t
형식으로 반환
- 읽어들인 개수가
count
인자에서 지정한 것과 다르거나, End OF File
에 도달한 경우 오류 발생
fwrite
#include <stdio.h>
size_t fwrite(const void* ptr, size_t size, size_t count, FILE* stream);
- 스트림에 데이터 블록을 씀
count
개의 원소를 가지는 배열을 쓰고, 각각의 원소는 size
바이트이고, 그 배열은 ptr
이 가리키는 것
- 전체 스트림에 써지는 바이트 수는
count
개
인자
ptr
: 스트림에 쓰여질 배열을 가리키는 포인터
size
: 배열 각각의 원소의 크기
count
: 배열 원소의 개수로 각 원소의 크기는 size 바이트
stream
: 내용을 쓸 스트림을 가리키는 FILE 포인터
반환값
- 스트림에 성공적으로 써진 전체 원소의 개수는
size_t
형식으로 반환
- 쓰여진 바이트 수와
count
의 값이 다르면 오류 발생
fgetc
#include <stdio.h>
int fetc(FILE* stream);
- 지정된 스트림으로부터 하나의 문자를 읽어옴
- 읽기를 성공하면 읽은 문자를 반환하고, 파일의 끝에 도달하면 EOF 반환
fputc
#include <stdio.h>
int fputc(int c, FILE* stream);
- 지정된 스트림에 문자 하나를 출력
- 저장에 성공하면 저장한 문자를 반환하고, 실패하면 EOF 반환
fgets
#include <stdio.h>
char* fgets(char* restict s, int n, FILE* restrict stream);
- 지정된 스트림으로부터 문자열을 읽어 오는 함수
인자
s
: 읽은 문자열이 저장될 주소
n
: 최대 입력 문자 개수
stream
: 문자열이 저장될 스트림
반환값
- 읽기를 성공하면 읽은 문자열이 저장된 주수를 반환
- 파일에 끝에 도달하거나 읽기에 실패하면 NULL 반환
fputs
#include <stdio.h>
int fputs(const char* restrict s, FILE* restrict stream);
인자
s
: 쓰고자 하는 문자열의 주소
stream
: 문자열을 읽을 스트림
반환값
- 저장에 성공하면 음수가 아닌 값 반환
- 저장에 실패하면 EOF 반환
fscanf
#include <stdio.h>
int fsacnf(FILE* restrict stream, const char* restrict format, ...);
- 지정된 스트림으로부터 다양한 서식 변환 문자를 이용해 문자열을 읽음
fprintf
#include <stdio.h>
int fprintf(FILE* restrict stream, const char* restrict format, ...);
- 지정된 스트림에 다양한 서식 변환 문자를 이용하여 문자열을 저장