2009-06-26 3 views
0

프로그래밍 방식으로 텍스트 파일을 생성 할 때 파일 끝 부분에 ASCII EOF 마커 (10 진수 값 26)를 삽입해야합니까?텍스트 파일을 생성 할 때 EOF 표식?

.NET 프로그래밍 언어가 자동으로 수행합니까?

+0

26은 EOF가 아닙니다. Microsoft가 파일의 끝으로 처리합니다. http://www.asciitable.com/을 참조하십시오. 실제 EOF는 사용해야합니다. 4 –

+0

그것은 논점이지만 4는 실제로 EOF가 아닙니다. 그것은 "전송의 끝"입니다. –

답변

2

^ZEOF 마커가 더 이상 필요하지 않습니다. (그리고 오랜 시간 동안은 없었습니다.) 파일 크기가 디렉토리의 정확한 크기를 지원하지 않는 CP/M의 보류입니다. 128 바이트 블록의 수와 관련하여, 128 바이트가 아닌 경계의 파일을 끝내려면 EOF 문자를 사용해야합니다.

MS-DOS의 초기 버전은 CP/M의 영향을 많이 받았기 때문에 (Microsoft는 CP/M 프로그램을 쉽게 포트하기를 원했음) 규칙이 적용되지 않았습니다.

프로그램은 적절한 특성을 가진 텍스트 파일을 열어야하므로 규칙을 사용하는 파일을 발견 할 경우를 대비하여 OS 및/또는 언어 런타임에서 ^Z을 볼 때 EOF를 알립니다. 그러나 더 이상 쓸 필요가 없습니다.

한 가지 예외는 바이너리 파일이 있지만 처음에 텍스트를 넣고 싶다면 ^Z 다음 데이터입니다. 누군가가 콘솔에 덤프하면 쓰레기를 분출하는 대신 지능적인 것을 말할 것입니다. 이 작업을 수행해야하는 이유는 많지 않지만, 거의 수행되지 않은 것으로 확인되었습니다. 위키

(http://en.wikipedia.org/wiki/CP/M) :

파일 크기가 (직접 8 인치 드라이브에 디스크 섹터에 해당) 수를 128 바이트 기록 로 지정된 상의 파일에 의해 점령 디스크. 일반적으로 byte-exact 파일 크기를 지정하는 방법은 지원되지 않았습니다. 파일 의 현재 크기는 운영 체제 에 의해 파일 제어 블록 (FCB)의 파일에 유지 관리되었습니다. (텍스트 문자 편집기 등) 많은 응용 프로그램 프로그램은 문자의 시퀀스로보다는 컨벤션 텍스트 파일로 기록의 순서로 가 제어-Z 문자 (ASCII의 SUB 16 진수 1A 종료 된 파일을 처리하는 를 선호하기 때문에). 텍스트 파일의 끝을 결정하기 따라서 파일의 마지막 레코드를 검사하여 종료 제어 -Z를 찾았습니다. 이것은 또한 이 파일의 중간에 control-Z 문자 을 삽입하면 보통 파일의 내용을 잘라내는 효과가 이라는 것을 의미합니다.

5

No. EOF는 파일을 읽을 때 OS의 IO 기능에 의해 생성됩니다. 최신 시스템에서는 파일에 저장하면 안됩니다.

관련 문제