Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 텍스트 파일과 바이너리 파일의 차이점 완벽 정리

파일(File)은 여러 개의 레코드(record)로 이루어진 집합체이며, 데이터를 하드 디스크에 영구적으로 저장하는 공간을 의미합니다. 프로그램이 종료된 후에도 데이터를 보관해야 하는 경우 파일은 필수적인 요소입니다.

C 언어 파일의 두 가지 종류

C 언어에서 파일은 데이터를 저장하는 방식에 따라 다음 두 가지로 나뉩니다.

  • 텍스트 파일(Text File)
  • 바이너리 파일(Binary File)

텍스트 파일(Text File)이란?

  • 알파벳과 숫자 등 사람이 읽고 이해하기 쉬운 형태로 데이터를 저장합니다.

  • 오류가 발생하더라도 눈으로 내용을 직접 확인하고 수정할 수 있습니다.

  • 문자 하나당 1바이트씩 저장되기 때문에 데이터 양이 많아지면 용량이 커질 수 있습니다.

  • 예를 들어 정수 4567은 메모리에서는 2바이트를 차지하지만, 텍스트 파일에서는 '4', '5', '6', '7' 각각의 문자와 줄바꿈 문자를 포함해 5바이트를 차지합니다.

  • 데이터 형식은 주로 라인(줄) 단위로 구성되며, 각 줄이 하나의 독립적인 명령이나 레코드 역할을 합니다.

바이너리 파일(Binary File)이란?

  • 0과 1의 이진 데이터로 구성되어 있으며, 컴퓨터가 빠르고 효율적으로 처리할 수 있습니다.

  • 오류가 발생하면 파일 전체가 손상될 수 있고, 육안으로 감지하기가 매우 어렵습니다.

  • 정수 1245처럼 값을 이진 형태 그대로 저장하므로 메모리와 파일 모두에서 2바이트를 차지합니다.

  • 읽거나 쓰려면 반드시 해당 형식을 지원하는 전용 소프트웨어가 필요합니다.

  • 예를 들어 MP3 파일은 사운드 레코더나 오디오 편집기로 제작되며, 음악 재생 프로그램에서만 재생할 수 있습니다.

  • MP3 파일은 이미지 뷰어나 데이터베이스 소프트웨어에서는 열리지 않습니다.

텍스트 파일 vs 바이너리 파일 비교

구분텍스트 파일바이너리 파일
저장 형식사람이 읽을 수 있는 문자0과 1의 이진 데이터
용량 효율문자당 1바이트로 상대적으로 큼메모리 크기 그대로 저장하여 효율적
오류 처리내용을 눈으로 확인 후 수정 가능손상 시 감지가 어려움
호환성대부분의 편집기에서 열람 가능전용 소프트웨어 필요

접근 방식에 따른 파일 분류

  • 순차 파일(Sequential File) − 데이터를 처음부터 끝까지 순서대로 저장하고 유지하는 방식입니다.
  • 랜덤 액세스 파일(Random Access File) − 원하는 위치의 데이터에 임의로 접근하여 저장하고 검색하는 방식입니다.

마무리

텍스트 파일은 사람이 읽고 수정하기 쉬운 대신 용량이 커지기 쉽고, 바이너리 파일은 용량 효율성과 처리 속도가 뛰어난 대신 전용 프로그램이 필요합니다. C 언어에서는 fopen() 함수의 모드("r", "w", "rb", "wb" 등)를 통해 두 형식을 모두 다룰 수 있으므로, 데이터의 성격과 용도에 맞는 파일 형식을 선택하는 것이 중요합니다.