01_파일 입출력

Programming/C 2015. 5. 4. 01:13

C언어가 제공하는 파일 입출력 기능은 운영체제와 밀접한 관계를 맺고있다.

파일 처리는 운영체제의 핵심 기능인 파일 시스템을 조작해서 데이터를 입출력합니다.

 

파일 시스템이란??

- 운영체제 종류에 따라 다양한 파일 시스템이 제공된다.

  윈도우는 FAT16, FAT32, NTFS, WIN_FS등의 파일 시스템을 제공하고, 리눅스는 EXT2등의

  파일시스템을 제공한다.

  각각의 파일 시스템에 특화된 기능을 구현하고 싶다면 각각의 운영체제가 제공하는 저수준

  파일처리함수를 사용해야한다.

 

파일 입출력 포인터

- 파일은 의미있는 이름을 갖고 있는, 관련된 데이터의 연속된 집합이다.

   파일 처리 프로그램은 파일에 대해 검색, 판독, 수정, 추가, 삭제 등의 작업을 처리한다.

- 파일은 운영체제에 의해서 아주 복잡한 방법으로 관리된다.

- C에서는 복잡한 개념 대신, 파일 포인터를 이용해서 쉽게 파일을 다룰 수 있다.

 

 

 

파일 입출력 프로그램의 구조는 1,2,3의 순서대로 진행된다.

 

텍스트 모드와 이진 모드

- 파일 입출력은 Text모드와 Binary모드의 두 가지 저장 형식을 가지고 있다.

- 파일을 디스크에 저장할 때와 호출할 때 행하는 모드를 Text모드

   변환을 하지 않는 모드를 Birnary모드라고 한다.

- 텍스트와 이진 모드로 구분하는 이유는 C언어와 운영체제와의 파일 처리에서 발생하는 차이점

   때문이다.

 

윈도우나 도스 운영체제는 행의 끝을 0D(CR : 복귀 )와 0A(LF : 개행)의 두 문자를 사용해서 표현하지만,   C언어는 \n (0A)만을 사용해 표현한다.

그러므로 C로 작성된 파일을 윈도우나 도스 운영체제에 저장할 경우에는 \n을 CR, LF로 읽어올 때는 CR, LF를 \n으로 변환해 주어야 한다.

 

일반적으로 텍스트 모드로 저장된 파일은 메모장과 같은 텍스트 편집 프로그램으로 읽어서 판독할 수 있다. 그러나 이진 모드로 저장된 파일은 메모장과 같은 프로그램으로 열었을 때 해석할 수 없는 문자로 가득찬 경우가 많다.

 

 

 

'Programming > C' 카테고리의 다른 글

memset()  (0) 2015.05.16
02_ 파일 입출력  (0) 2015.05.04
01_기본 자료형  (0) 2015.05.02
memset , memcpy, memmove  (0) 2015.05.01
텍스트 파서  (0) 2015.05.01
admin