텍스트 및 이진 스트림

텍스트 스트림은 읽을 수 있도록 텍스트 기반 표시에 쓸 수 있는 하나 이상의 텍스트 줄로 구성됩니다. 텍스트 스트림에서 읽는 경우 프로그램은 각 줄의 끝에 있는 줄 바꿈을 읽습니다. 텍스트 스트림에 쓰면 프로그램에서 줄의 끝을 알리는 줄 바꿈을 작성합니다. 파일의 텍스트를 표현하도록 대상 환경의 서로 다른 규칙을 일치시키기 위해 라이브러리 함수가 프로그램과 텍스트 스트림 간에 전송된 문자의 수와 표현을 변경할 수 있습니다.

텍스트 스트림 내의 위치는 제한됩니다. 호출하거나 ftell.를 호출 fgetpos 하여 현재 파일 위치 표시기를 가져올 수 있습니다. 이러한 방식으로 가져온 위치 또는 스트림의 시작 또는 끝에 텍스트 스트림을 호출 fsetpos 하거나 fseek배치할 수 있습니다. 다른 위치 변경은 지원되지 않습니다.

이식성을 극대화하기 위해 프로그램은 다음을 작성하면 안 됩니다.

  • 빈 파일
  • 줄 끝의 공백 문자
  • 부분 선(파일 끝에 있는 줄 바꿈을 생략).
  • 인쇄 가능한 문자, 줄 바꿈 및 가로 탭 이외의 문자입니다.

이러한 규칙을 따르는 경우 텍스트 스트림에서 읽은 문자 시퀀스는 바이트 또는 멀티바이트 문자로 작성한 문자 시퀀스와 일치합니다. 그렇지 않으면 파일을 닫을 때 파일이 비어 있는 경우 라이브러리 함수가 파일을 제거할 수 있습니다. 또는 파일에 쓰는 문자를 변경하거나 삭제할 수 있습니다.

이진 스트림은 하나 이상의 바이트의 임의 정보로 구성됩니다. 임의 개체에 저장된 값을 이진 스트림(바이트 기반)에 쓰고 이때 개체에 저장된 내용을 정확하게 읽을 수 있습니다. 라이브러리 함수는 프로그램과 이진 스트림 간에 전송하는 바이트를 변경하지 않습니다. 그러나 이진 스트림을 사용하여 작성하는 파일에 임의의 바이트 수를 NULL 추가할 수 있습니다. 프로그램은 이진 스트림의 끝에서 이러한 추가 NULL 바이트를 처리해야 합니다.

스트림의 끝을 기준으로 위치를 지정하는 경우를 제외하고 이진 스트림 내의 위치 지정은 잘 정의됩니다. 텍스트 스트림과 동일하게 현재 파일 위치 표시기를 얻고 변경할 수 있습니다. 스트림의 시작 부분에서 사용되는 ftell 오프셋 및 fseek 개수 바이트(바이트 0)이므로 이러한 오프셋에 대한 정수 산술 연산은 예측 가능한 결과를 생성합니다.

바이트 스트림은 파일을 바이트의 시퀀스로 처리합니다. 프로그램에서 스트림은 위에 설명된 변경을 제외하고는 바이트 시퀀스와 같습니다.

참고 항목

파일 및 스트림