바이트 및 와이드 스트림
바이트 스트림은 파일을 바이트의 시퀀스로 처리합니다. 프로그램에서 스트림은 바이트 시퀀스와 동일합니다.
반면, 와이드 스트림은 파일을 일반화된 멀티바이트 문자 시퀀스로 처리하므로 광범위한 인코딩 규칙이 적용될 수 있습니다. (텍스트 및 이진 파일은 여전히 앞에서 설명된 대로 읽고 씁니다.) 프로그램에서 스트림은 와이드 문자의 해당 시퀀스와 유사합니다. 이러한 두 표현 간의 변환은 표준 C 라이브러리에서 진행됩니다. 원칙적으로 변환 규칙은 LC_CTYPE
범주를 변경하는 setlocale
호출에 의해 변경될 수 있습니다. 각 와이드 스트림은 와이드 방향이 될 때 해당 변환 규칙을 결정하고, 이 후에 범주 LC_CTYPE
이 변경되더라도 이러한 규칙을 유지합니다.
와이드 스트림 내의 위치 지정은 텍스트 스트림과 동일한 제한이 적용됩니다. 또한 파일 위치 표시기는 상태 종속적 인코딩을 처리해야 할 수 있습니다. 일반적으로는 여기에는 스트림 내의 바이트 오프셋과 mbstate_t
형식의 개체가 모두 포함됩니다. 따라서 와이드 스트림 내에서 파일 위치를 가져오는 믿을 수 있는 유일한 방법은 fgetpos
을(를) 호출하는 것이며, 이 방법으로 획득한 위치를 복원하는 믿을 수 있는 유일한 방법은 fsetpos
을(를) 호출하는 것입니다.