본문으로 바로가기

Linux상에서 파일입출력

category Helloworld! 2013. 10. 20. 17:06

[ 파일 처리 작업 순서 ]


1. 파일 포인터(표준입출력) 또는 파일지시자(저수준입출력) 변수 선언

2. 작업 대상 파일을 연다 (open) : 파일 포인터 또는 파일 지시자가 대상 파일의 주소 또는 정보를 참조하게 됨

3. 파일 안의 내용 입력(read) 또는 출력(write) 처리함

4. 작업이 끝나면 반드시 대상 파일을 닫는다. (close)


[ 표준 입출력 함수 ]


- open(),  read(), write(), sleek(), close()함수

- #include <sys/types.h>

  #include <sys.stat.h>

  #include <fcntl.h> 필요


1. FILE * fopen(const char * path, const char * mode) : 파일 열기 함수

- 사용법 : 파일 포인터 = fopen("파일명", "열기모드")

- fopen은 FILE *이라는 자료형을 반환 

  (int *처럼 포인터이며 가르키는 것이 int가 아닌 FILE이라는 타입임 / FILE은 int, double처럼 이미 정해진 자료형)

- 따라서 해당하는 포인터를 미리 만들어줘야함

   ex)

 FILE *fp;
         fp = fopen("test.txt", "w"); //매개변수가 char *이므로 문자열로 입력(즉, ""사용)
         //fp = fopen(arr[1], "w"); //도 사용 가능

* 열기 모드 속성

- "w" OR "wt" => 대상 파일 존재 하지 않을 경우, 새로 파일 생성해서 열기

     => 대상 파일 존재할 경우, 기존의 내용 모두 삭제 후 열기(즉, 새로쓰기)

- "r" OR "rt"    => 대상 파일 존재 하지 않을 경우, 에러.

     => 대상 파일 존재할 경우, 정상적으로 작동

- "a" OR "at"   => 대상 파일 존재 하지 않을 경우, 새로 파일을 생성해서 열기

     => 대상 파일 존재할 경우, 기존의 파일이 열리며 맨 뒤부터 쓰기(즉, 추가)


2. int fclode(FILE *stream) : 파일 닫기 함수

- 사용법 : fclose(파일포인터)

   ex)

fclose(fp);


참고사이트 : 

http://kcoder.tistory.com/368

http://k-story.tistory.com/246