Joinc 팀블로그 리눅스 메뉴얼 정리 Joinc 위키
댓글

Recent Comments

Powered by Disqus
팀블로그 카테고리
  전체 (1105)
   공지사항 (1)
   검색엔진 (21)
   기술동향 (58)
   게임 (2)
   독서 (6)
   리눅스 (12)
   보안 (1)
   사회문제 (22)
   어셈블리 (43)
   영화 (3)
   오픈소스 (10)
   음악 (9)
   인물 (1)
   포인터 (4)
   프로그래머 (23)
   팀블로그 (20)
   테터툴즈 (29)
   C/C++ (152)
   FireFox (11)
   Gimp (2)
   Google (98)
   Java (13)
   Perl (2)
   Pthread (11)
   STL (13)
   TCP/IP (8)
   Tools (31)
   Web2.0 (42)
   Wiki (1)
«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
2008/01/15 10:27

linux man page - fopen : 파일 stream을 오픈한다.


1장. fopen(3)

차례
1.1. 사용법
1.2. 설명
1.3. 반환값
1.4. 에러
1.5. 예제
1.6. 참고문헌

파일로 부터 스트림을 생성한다.


1.1. 사용법

#include <stdio.h>

FILE *fopen(const char *path, const char *mode);
FILE *fdopen(int fildes, const char *mode);
FILE *freopen(const char *path, const char *mode, FILE *stream);


1.2. 설명


1.3. 반환값


fopen 은 종종 open(2) 함수와 비교되어서 설명된다. byte 단위로 열린파일을 다루는 open 과는 달리 fopen 는 stream 단위로 열린파일의 데이타를 다룬다. 즉 fopen 은 자체적으로 버퍼를 관리함으로써, 함수 사용자가 저수준에서 다루어야할 많은 것들을 대신 해결해 줌으로 좀더 쉽게 사용할수 있다.

path 에 지정된 파일을 mode 에 주어진 모드로 연다.

이 함수는 fputs(3), fgets(3), ungetc(3), getc(3) 등과 같이 쓰이며 표준 I/O(입출력) 함수라고 부른다.

다음과 같은 mode 를 path 에 대해서 지정해줄수 있다.

r

파일을 읽기 전용으로 연다. stream 포인터의 위치는 파일의 시작위치를 가리킨다.

r+

파일을 읽기/쓰기로 연다. stream 포인터의 위치는 파일의 시작위치를 가리킨다.

w

쓰기전용의 파일을 열기 위해서 사용된다. 열린 파일크기는 0 이되며, stream 포인터의 위치는 파일의 시작위치를 가리킨다.

w+

파일을 읽기/쓰기로 연다. 파일이 이미 존재한다면, 파일의 크기는 0이 된다. stream 포인터의 위치는 파일의 시작위치를 가리킨다.

a

쓰기위해서 파일을 연다. 파일이 존재하지 않는다면 새로 생성한다. stream 포인터의 위치는 파일의 시작위치를 가리킨다.

a+

파일을 읽기/쓰기로 연다. 파일이 존재하지 않는다면 새로생성한다. stream 포인터의 위치는 파일을 끝을 가리킨다.

fdopen(3)함수는 파일지정자 fildes로 부터 스트림을 얻어온다. mode는 fopen에 사용하는 것들을 그대로 사용할 수 있다. 그렇지만 파일지정자의 mode와 조화를 이룰 수 있어야 한다.

freopen(3)함수는 streampath파일과 연결 한다. 이때 최초의 stream은 닫히게 된다. mode는 fopen에서 사용하는 것과 동일하다. 이함수는 stderr, stdin, stdout 등을 파일과 연결시키고자 할때 주로 사용한다.


1.4. 에러

EINVAL

잘못된 mode를 지정했을 경우

이 외의 에러는 open(2)와 동일하다.

1.5. 예제

#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
FILE *fp;

fp = fopen("/home/test/test.txt", "r");
if (fp == NULL)
{
perror("File open error: ");
exit(0);
}
// 표준 I/O 함수를 이용한 여러가지 작업을 한다.

fclose(fp);
return 0;
}


1.6. 참고문헌

  1. open(2)

  2. fopen(3)

  3. fileno(3)

  4. stdio.h 사용하기

:::