1바이트씩 처리하는것은 바이너리 모드나 텍스트모드나 전혀 차이점이 없습니다. 차이점을 예를들자면 한글로 "가나다"를 저장한다고 치면 텍스트 모드에서는 정상적으로 "가나다"라고 저장이 되나 바이너리 모드로 저장을 하게 되면 "가나다"에 해당하는 총 6바이트의 아스키 코드가 저장됩니다.(널문자는예외로 둡니다) 바이너리 모드로 저장된 파일을 메모장으로 열면 전혀 알수 없는 데이터가 나옵니다. 단 영문일 경우엔 정상적으로 나옵니다. 아스키 코드와 1:1 매칭이 되기 때문이죠..
윈도(도스)계열에서는 '\n'을 입출력할 때, 차이를 보입니다. 이진모드에서는 '\n'으로 읽고 쓰지만, 텍스트 모드에서는 '\n'을 0x0D(\r),0x0A(\n)로 저장하고, 0x0D 0x0A를 '\n'으로 읽습니다. 물론 0x0A 하나만 있으면 0x0A('\n')로 읽습니다. 또 한가지, 텍스트 파일에서는 0x1A를 파일의 끝을 나타내는 문자로 처리합니다. 즉, 0x1A 문자 이후로 데이터가 있더라고 이미 EOF를 만난 것으로 간주됩니다. 바이너리 파일에는 파일 끝을 나타내는 문자가 따로 없습니다. feof()함수로 확인할 수있습니다.
'Drag & Drop' 카테고리의 다른 글
MSSQL에서 Heterogeneous queries 오류가 뜰 때 해결책. (0) | 2010.03.19 |
---|---|
[스크랩] 면접관이 말하는 면접 노하우. (0) | 2009.10.09 |
윈도우즈 XP 최적화 팁 모음 (0) | 2009.07.28 |
Virtualbox could not create temporary directory. (0) | 2009.07.28 |
네로 서치 제거법 (0) | 2009.07.28 |