C 언어의 텍스트 흐름 과 이 진 흐름 의 차이

최근 에 텍스트 흐름 과 이 진 흐름 의 차 이 를 보 았 습 니 다. 책 에서 말 하 는 것 이 비교적 모호 하고 이해 가 잘 되 지 않 아서 곰 곰 이 생각해 보고 소감 을 여러분 과 나 누 었 습 니 다.
첫째, 먼저 대답, 파일 이 무엇 인지, 흐름
하나의 파일 은 보통 디스크 의 이름 을 딴 저장 소 이다.예 를 들 어 stdio. h 는 유용 한 정 보 를 포함 하 는 파일 의 이름 입 니 다.
C. 파일 을 연속 적 인 바이트 시퀀스 로 보고 모든 바이트 가 단독으로 읽 을 수 있 습 니 다.이 는 UNIX 환경 (C 의 발원지) 의 파일 구조 와 일치한다.다른 환경 에서 파일 모델 이 다 를 수 있 기 때문에 ANSI C 는 파일 의 두 가지 보 기 를 제공 합 니 다. 텍스트 보기 와 바 이 너 리 보기 입 니 다.
C. 데이터 의 입 출력 을 데이터 의 유입 과 유출 로 본다. 디스크 파일 이 든 물리 장치 든 모두 하나의 흐름 의 소스 와 목적 으로 볼 수 있 고 그들 을 같은 것 으로 볼 수 있다. 구체 적 인 물리 구조, 즉 그들의 조작 에 관 계 없 이 데이터 의 유입 과 유출 이다.이러한 데이터 의 입 출력 작업 대상 을 하나의 흐름 으로 추상 화 하 는 것 은 그의 구체 적 인 구 조 를 막론하고 프로 그래 밍 에 유리 하고 흐름 과 관련 된 출력 작업 함 수 는 각종 대상 에 사용 할 수 있 으 며 구체 적 인 실체 와 상 관 없 이 유 니 버 설 성 을 가진다.  
2. 텍스트 보기 와 바 이 너 리 보기 의 차이 
바 이 너 리 보기에 서 모든 바이트 가 프로그램 에 접근 할 수 있 습 니 다.
텍스트 보기에 서 프로그램 이 보 는 내용 과 파일 의 내용 이 다 를 수 있 습 니 다 (유 닉 스 환경 이 아 닌).예 를 들 어 DOS 아래 에 test. txt 파일 이 있 습 니 다. 내용 은?
hello\r
world\r
^Z

이 진 모드 로 test. txt 를 열 었 을 때 C 프로그램 이 본 내용 은 원래 와 같 습 니 다 (다음 과 같 습 니 다). 이때 맵 이 발생 하지 않 았 습 니 다.
hello\r
world\r
^Z

텍스트 모드 로 test. txt 를 열 었 을 때 C 프로그램 은 다음 과 같은 내용 을 보 았 습 니 다. (줄 끝 과 파일 끝 자 를 주의 하 십시오)
hello
world

즉, 텍스트 보 기 를 사용 하여 파일 을 읽 을 때 줄 끝의 로 컬 환경 표시 법 을 C 보기 로 표시 합 니 다.출력 할 때 도 C 보기 의 줄 끝 을 로 컬 환경 표시 법 으로 표시 합 니 다.이렇게 해서 C 는 텍스트 보 기 를 통 해 서로 다른 환경 (DOS, MAC) 아래 의 파일 을 교묘 하 게 같은 표시 (UNIX 아래 의 표현법) 로 변환 한다.
바 이 너 리 보 기 는 원본 파일 과 변 함 이 없습니다!좀 이 해 했 죠?
 
3. 텍스트 파일 과 바 이 너 리 파일
텍스트 파일 은 문자 인 코딩 을 기반 으로 하 는 파일 로 기본적으로 길이 가 정 해 져 있 으 며, 흔히 볼 수 있 는 인 코딩 은 ASCII 인 코딩, UNICODE 인 코딩 등 이 있다.바 이 너 리 파일 은 값 인 코딩 을 기반 으로 하 는 파일 로 길 어 지 는 인 코딩 입 니 다. 구체 적 인 응용 에 따라 어떤 값 이 무슨 뜻 인지 지정 할 수 있 습 니 다 (이러한 과정 은 사용자 정의 인 코딩 으로 볼 수 있 습 니 다).   텍스트 도구 가 파일 을 여 는 과정 은 어 떻 습 니까?메모 장 을 가 져 오 면 먼저 파일 의 물리 적 으로 대응 하 는 바 이 너 리 비트 흐름 을 읽 은 다음 에 선택 한 디 코딩 방식 으로 이 흐름 을 설명 하고 마지막 으로 해석 결 과 를 보 여 줍 니 다.메모 장 으로 바 이 너 리 파일 을 열 때 정 해진 문자 인 코딩 작업 (예 를 들 어 ASCII 코드) 을 하기 때문에 오류 가 발생 하 는 것 도 필연 적 인 일이 다.
텍스트 파일 인 코딩 은 문자 의 길이 에 따라 디 코딩 이 쉽 습 니 다.바 이 너 리 파일 인 코딩 은 길 어 지기 때문에 유연 하고 저장 이 용 률 이 높 으 며 디 코딩 이 어렵 습 니 다 (바 이 너 리 파일 형식 에 따라 디 코딩 방식 이 다 릅 니 다). 텍스트 파일 의 가 독성 이 좋아 야 합 니 다. 저장 소 는 변환 시간 (읽 기와 쓰 기 는 컴 파일 코드) 이 걸 리 고 바 이 너 리 파일 은 가 독성 이 떨 어 집 니 다. (구체 적 인 파일 디코더 가 필요 합 니 다) 변환 시간 이 존재 하지 않 습 니 다. (읽 기와 쓰 기 는 디 코딩 을 하지 않 고 직접 값 을 씁 니 다.)
알 겠 느 냐?
Stay hungryStay foolish

좋은 웹페이지 즐겨찾기