2012-12-03 5 views
4

인데, 텍스트 모드에서 파일을 쓰거나 읽는 동안 새 줄 문자는 \ n에서 \ r \ n 캐리지 리턴 및 줄 바꿈으로 변환되지만 바이너리 모드에서는 그렇지 않습니다. 우연히 있다.텍스트 모드에서 바이너리 모드의 차이점이

마찬가지로 ASCII 값 26은 텍스트 모드에서 파일 끝에 쓰여지지만 이진 모드에서는 발생하지 않습니다.

이 질문은 이전에 물어 보았지만 거기에는이 동작에 대한 추론을 찾지 못했습니다.

이 동작은 텍스트와 바이너리 모드를 구별하는 것일 뿐이므로이 번역의 특별한 이유가 있으며 바이너리 모드의 경우 ASCII 값 26을 쓰지 않습니다.

답변

5

어떤 의미에서 이진 모드는 "원시"입니다. 변환 할 수있는 근거가 없으므로 아무 것도 번역되지 않습니다. 텍스트 모드에서 파일은 텍스트로 해석되기 때문에 (예를 들어) 줄 끝은 적절한 표현으로 변환됩니다.

+0

도움을 주셔서 감사합니다 –

4

텍스트 파일 처리는 운영 체제에 따라 다릅니다. 이진 파일은 전혀 처리되지 않습니다. Windows는 라인 엔딩을 CR + LF로 대체하고, Linux에서는 OSX를 LF로 대체합니다. Linux에서는 OS와 관련하여 텍스트 파일과 이진 파일 처리간에 차이가 없습니다.

+0

당신은이 번역이 OS 기능 수준이 아닌 라이브러리 기능에서 발생한다고 말하고 싶습니까? –

+0

어떤 수준에서도 번역이 없다는 것을 의미합니다. – perreal

관련 문제