-
3. File I/O - library calls(2)HW & SW Interface/System Programming 2020. 5. 5. 15:48
# File Open
filename의 파일을 type 모드로 열기
#include <stdio.h> File *fopen(const char *filename, const char *type);
parameters
- filename: 파일 이름 (string)
- type: 파일 접근 모드
type 의미 r read-only w write/ 파일이 존재하면 덮어쓰고, 존재하지 않으면 생성 a append mode(EOF), write-only/ 파일 존재하지 않으면 생성 r+ read + write w+ read + write/ 파일이 존재하면 덮어쓰고, 존재하지 않으면 생성 a+ read/append mode(EOF)/ 파일 존재하지 않으면 생성 return
- 성공 -> file stream pointer
- 실패 -> NULL
# File Reopen
file stream(파일 객체)을 닫고 filename을 파일 객체(stream)로 연결.
#include <stdio.h> FILE *freopen(const char *filename, const char *type, FILE *stream);
parameters
- filename: 파일 이름 (string)
- type: 파일 접근 모드
- stream: 파일 객체
return
- 성공 -> file stream pointer
- 실패 -> NULL
# File Close
file stream 닫기
#include <stdio.h> int fclose(FILE *stream);
return
- 성공 -> 0
- 실패 -> EOF
# File I/O functions
string 형태로 버퍼에 저장하는(읽고 쓰는) 형식
파일 읽기
stream에서 nitems만큼의 데이터를 읽어와서, ptr이 가리키는 버퍼에서 쓰기
size_t fread(void *ptr, size_t size, size_t nitems, FILE *stream)
parameters
- ptr: 파일로부터 읽어들인 데이터를 저장할 주소 버퍼 포인터
- size: 파일 obj의 유닛 사이즈(실제 크기/ bytes)
- nitems: 읽어들일 obj의 개수
- stream: 읽을 파일 포인터
return
- 성공 -> 읽어들인 파일의 데이터 수
- 실패 -> EOF
파일에 쓰기
ptr이 가리키는 버퍼에서 nitems만큼의 데이터를 가져와, stream에 쓰기
size_t fwrite(void *ptr, size_t size, size_t nitems, FILE *stream)
parameters
- ptr: 데이터를 가지고 있는 버퍼 포인터
- size: 파일 obj의 유닛 사이즈(실제 크기/ bytes)
- nitems: 쓸 obj의 개수
- stream: 쓸 파일 포인터
return
- 성공 -> 쓴 파일의 데이터 수
- 실패 -> EOF
# Character Input & Output
char 형태로 버퍼에 저장하는(읽고 쓰는) 형식
Input
//return integer int getc(FILE *stream); int fgetc(FILE *stream); int getchar(); //return string address char *fgets(char *s, int size, FILE *stream); char *gets(char *s); //return c int ungetc(int c, FILE *stream);
Output
//return integer int putc(int c, FILE *stream); int fputc(int c, FILE *steram); int putchar(int c) //return number of chars int *fputs(const char *s, FILE *stream); char *puts(const char *s);
'HW & SW Interface > System Programming' 카테고리의 다른 글
5. File I/O - system calls(1) (0) 2020.05.05 4. File I/O - library calls(3) (0) 2020.05.05 2. File I/O - library calls(1) (0) 2020.05.05 1. Introduction (0) 2020.05.04