텍스트 및 이진 스트림Text and Binary Streams

텍스트 스트림은 읽을 수 있도록 텍스트 기반 표시에 쓸 수 있는 하나 이상의 텍스트 줄로 구성됩니다.A text stream consists of one or more lines of text that can be written to a text-oriented display so that they can be read. 텍스트 스트림을 읽을 때 프로그램은 각 줄의 끝에서 NL(줄 바꿈)을 읽습니다.When reading from a text stream, the program reads an NL (newline) at the end of each line. 텍스트 스트림에 쓸 때 프로그램은 줄의 끝을 알리기 위해 NL을 씁니다.When writing to a text stream, the program writes an NL to signal the end of a line. 파일의 텍스트를 표현하도록 대상 환경의 서로 다른 규칙을 일치시키기 위해 라이브러리 함수가 프로그램과 텍스트 스트림 간에 전송된 문자의 수와 표현을 변경할 수 있습니다.To match differing conventions among target environments for representing text in files, the library functions can alter the number and representations of characters transmitted between the program and a text stream.

따라서 텍스트 스트림에서 위치 지정이 제한됩니다.Thus, positioning within a text stream is limited. fgetpos 또는 ftell을 호출하여 현재 파일 위치 표시기를 얻을 수 있습니다.You can obtain the current file-position indicator by calling fgetpos or ftell. fsetpos 또는 fseek를 호출하여 이런 방법으로 얻은 위치 또는 스트림의 처음이나 끝에 텍스트 스트림을 배치할 수 있습니다.You can position a text stream at a position obtained this way, or at the beginning or end of the stream, by calling fsetpos or fseek. 다른 위치 변경은 지원되지 않습니다.Any other change of position might well be not supported.

최대 이식성을 위하여 프로그램은 다음을 쓰지 않아야 합니다.For maximum portability, the program should not write:

  • 빈 파일Empty files.

  • 줄 끝의 공백 문자Space characters at the end of a line.

  • 줄의 일부(파일 끝의 NL 생략)Partial lines (by omitting the NL at the end of a file).

  • 인쇄 가능한 문자, NL 및 HT(가로 탭) 이외의 문자characters other than the printable characters, NL, and HT (horizontal tab).

    이러한 규칙을 따르는 경우 텍스트 스트림에서 읽는 문자의 시퀀스(바이트 또는 멀티바이트 문자)는 파일을 만들 때 텍스트 스트림에 쓴 문자의 시퀀스와 일치합니다.If you follow these rules, the sequence of characters you read from a text stream (either as byte or multibyte characters) will match the sequence of characters you wrote to the text stream when you created the file. 그렇지 않으면 파일을 닫을 때 파일이 비어 있는 경우 라이브러리 함수가 파일을 제거할 수 있습니다.Otherwise, the library functions can remove a file you create if the file is empty when you close it. 또는 파일에 쓴 문자를 삭제하거나 변경할 수 있습니다.Or they can alter or delete characters you write to the file.

    이진 스트림은 하나 이상의 바이트의 임의 정보로 구성됩니다.A binary stream consists of one or more bytes of arbitrary information. 임의 개체에 저장된 값을 이진 스트림(바이트 기반)에 쓰고 이때 개체에 저장된 내용을 정확하게 읽을 수 있습니다.You can write the value stored in an arbitrary object to a (byte-oriented) binary stream and read exactly what was stored in the object when you wrote it. 라이브러리 함수는 프로그램과 이진 스트림 사이에 전송된 바이트를 변경하지 않습니다.The library functions do not alter the bytes you transmit between the program and a binary stream. 대신 이진 스트림으로 쓴 파일에 임의 개수의 null 바이트를 추가합니다.They can, however, append an arbitrary number of null bytes to the file that you write with a binary stream. 프로그램은 이진 스트림 끝에서 이러한 추가 null 바이트를 처리해야 합니다.The program must deal with these additional null bytes at the end of any binary stream.

    따라서 스트림의 끝을 기준으로 위치를 지정하는 경우를 제외하고는 스트림 내에서의 위치 지정은 문제가 없습니다.Thus, positioning within a binary stream is well defined, except for positioning relative to the end of the stream. 텍스트 스트림과 동일하게 현재 파일 위치 표시기를 얻고 변경할 수 있습니다.You can obtain and alter the current file-position indicator the same as for a text stream. 또한 ftellfseek에서 사용되는 오프셋은 스트림의 시작(0 바이트)부터 바이트를 세기 때문에 이러한 오프셋에서의 정수 산술 연산은 예측 가능한 결과를 도출합니다.Moreover, the offsets used by ftell and fseek count bytes from the beginning of the stream (which is byte zero), so integer arithmetic on these offsets yields predictable results.

    바이트 스트림은 파일을 바이트의 시퀀스로 처리합니다.A byte stream treats a file as a sequence of bytes. 프로그램에서 스트림은 위에 설명된 변경을 제외하고는 바이트 시퀀스와 같습니다.Within the program, the stream looks like the same sequence of bytes, except for the possible alterations described above.

참고 항목See Also

파일 및 스트림Files and Streams