함수 기능
fopen
파일을 여는 함수
freopen
파일을 닫고 다시 열어주는 함수
fdopen
파일을 파일 디스크립터로 여는 함수
함수 원형
#include <stdio.h>
FILE *fopen(const char *filepath, const char *mode);
FILE *freopen(const char *filepath, const char *mode, FILE *fp);
FILE *fdopen(int fd, const char *mode);
리턴 값 : 성공 시 파일포인터 , 에러시 NULL 리턴
함수 파라메터
filepath
열려고하는 파일의 경로
mode
r,rb - 파일을 읽기전용으로 오픈
w,wb - 파일을 쓰기전용으로 오픈
a,ab - 파일에 데이터를 추가하기 위해 오픈
r+, rb+, r+b - 파일을 읽기 쓰기 가능하도록 오픈, 지정한 파일 존재하지 않으면 호출실패
w+, wb+, w+b - 파일을 읽기 쓰기 가능하도록 오픈, 지정한 파일 존재하지 않으면 지정된 이름 파일 생성
a+, ab+, a+b - 파일을 읽기와 추가기능으로 파일을 오픈
fp
파일 포인터
fd
파일 디스크립터
함수 예제
fopen 예제
#include<stdio.h>
#include<stdlib.h>
int main(void){
char *fname = "ssu_test.txt";
char *mode = "r";
if(fopen(fname,mode)==NULL){
fprintf(stderr,"fopen error for %s\n",fname);
exit(1);
}
else
printf("Success!\nFilename:<%s>,mode:<%s>\n",fname,mode);
exit(0);
}
freopen 예제
#include<stdio.h>
#include<stdlib.h>
#include<fcntl.h>
int main(void){
char *fname = "ssu_test.txt";
int fd;
printf("First printf : Hello, OSLAB!!\n");
if((fd= open(fname,O_RDONLY))<0){
fprintf(stderr,"open error for %s\n",fname);
}
if(freopen(fname,"w",stdout) !=NULL )
printf("Second printf : Hello, OSLAB!!\n");
exit(0);
}
함수 결과
fopen 예제
freopen 예제
리눅스시스템 프로그래밍 - 홍지만 저
교재 내에 있는 예제를 바탕으로 작성한 글 입니다.
'C & LINUX' 카테고리의 다른 글
C / LINUX read() (0) | 2022.05.01 |
---|---|
C / LINUX lseek() (0) | 2022.05.01 |
C / LINUX creat() (0) | 2022.05.01 |
C / LINUX fclose() fcloseall() (0) | 2022.05.01 |
C / Linux open() 함수 (0) | 2022.05.01 |