바이트 및 와이드 스트림Byte and Wide Streams

바이트 스트림은 파일을 바이트의 시퀀스로 처리합니다.A byte stream treats a file as a sequence of bytes. 프로그램에서 스트림은 바이트 시퀀스와 동일합니다.Within the program, the stream is the identical sequence of bytes.

반면, 와이드 스트림은 파일을 일반화된 멀티바이트 문자 시퀀스로 처리하므로 광범위한 인코딩 규칙이 적용될 수 있습니다.By contrast, a wide stream treats a file as a sequence of generalized multibyte characters, which can have a broad range of encoding rules. (텍스트 및 이진 파일은 여전히 앞에서 설명된 대로 읽고 씁니다.) 프로그램에서 스트림은 와이드 문자의 해당 시퀀스와 유사합니다.(Text and binary files are still read and written as previously described.) Within the program, the stream looks like the corresponding sequence of wide characters. 이러한 두 표현 간의 변환은 표준 C 라이브러리에서 진행됩니다.Conversions between the two representations occur within the Standard C Library. 원칙적으로 변환 규칙은 LC_CTYPE 범주를 변경하는 setlocale 호출에 의해 변경될 수 있습니다.The conversion rules can, in principle, be altered by a call to setlocale that alters the category LC_CTYPE. 각 와이드 스트림은 와이드 방향이 될 때 해당 변환 규칙을 결정하고, 나중에 범주 LC_CTYPE이 변경되더라도 이러한 규칙을 유지합니다.Each wide stream determines its conversion rules at the time it becomes wide oriented, and retains these rules even if the category LC_CTYPE subsequently changes.

와이드 스트림 내의 위치 지정은 텍스트 스트림과 동일한 제한이 적용됩니다.Positioning within a wide stream suffers the same limitations as for text steams. 또한 파일 위치 표시기는 상태 종속적 인코딩을 처리해야 할 수 있습니다.Moreover, the file-position indicator may well have to deal with a state-dependent encoding. 일반적으로는 여기에는 스트림 내의 바이트 오프셋과 mbstate_t 형식의 개체가 모두 포함됩니다.Typically, it includes both a byte offset within the stream and an object of type mbstate_t. 따라서 와이드 스트림 내에서 파일 위치를 가져오는 믿을 수 있는 유일한 방법은 fgetpos를 호출하는 것이며, 이 방법으로 획득한 위치를 복원하는 믿을 수 있는 유일한 방법은 fsetpos를 호출하는 것입니다.Thus, the only reliable way to obtain a file position within a wide stream is by calling fgetpos, and the only reliable way to restore a position obtained this way is by calling fsetpos.

참고 항목See Also

파일 및 스트림 Files and Streams
setlocale, _wsetlocalesetlocale, _wsetlocale