PHP에서 파일 함수를 사용할 때 EOF를 확인합니다. EOF가 실제로 파일에 존재하는지 궁금합니다. 빈 텍스트 파일을 만들면 0KB가 표시됩니다. 0KB의 파일에는 EOF가 어떻게 존재합니까?실제로 EOF가 있습니까?
3
A
답변
9
파일 끝 제어 문자가 있습니다 (ASCII 문자 세트는 CTRL + Z 또는 26 또는 0x1A입니다). 그러나 OSes에서 릴리스 된 이후 파일의 끝을 표시하는 데 실제로 필요하지 않았습니다. 80 년대. 모든 최신 OS는 디렉토리 구조에 파일 크기를 메타 데이터로 저장합니다 (정확한 형식은 파일 시스템에 따라 다름). 높은 수준의 파일 액세스 기능은 파일 크기를 검사하여 프로그래머 인 EOF를 언제 나타낼 지 결정합니다.
데이터에 파일 끝이 있고 텍스트 모드 변환이 켜져 있으면 (대부분의 언어로 이것은 NL < -> CRLF 변환을 제어하는 설정과 동일합니다) 파일 액세스가 중지 될 수 있습니다 그 EOF 문자를 치면. 바이너리 모드에서는 파일 크기에 도달 할 때까지 읽기가 계속됩니다.
0
가 존재하지 않습니다 ..하지만 파일 크기가하는, 그리고 디스크에 실제 EOF 문자가없는 EOF
1
현대적인 파일 시스템에서 어디 있는지 아는 방법입니다. 그것은 1 바이트 값 대신에 4 바이트 값을 리턴함으로써 일부 파일 읽기 기능에서 구현되지만 대부분의 함수는 개념을 사용하지 않습니다.
관련 문제
- 1. nativeGetUninitializedObject는 실제로 어디에 있습니까?
- 2. 실제로 사운드가 재생되고 있습니까?
- 3. 무엇이 일어 났는지를 결정하기 위해 feof() EOF가
- 4. ASP.NET의 EOF가 아닌 동안 RecordSet.MoveNext와 같습니다.
- 5. SIGCHLD를 처리하면 EOF가 아버지에게 반환됩니다. 이유가 무엇입니까?
- 6. CGI의 대안이 있습니까 (실제로 필요합니까)?
- 7. viewRenderer는 실제로 어디에 설정되어 있습니까?
- 8. Python GIL은 실제로 인터프리터마다 있습니까?
- 9. GRASP Creator는 실제로 분리되어 있습니까?
- 10. 실제로
- 11. 오류 코드 3021 bof 또는 eof가 참이거나 현재 레코드가 삭제되었습니다.
- 12. fread() 파이프를 기반으로하는 디스크립터에서 읽는 것은 EOF가 아닌 데이터를 설정합니다.
- 13. 공백으로 구분 된 문자열을 읽는 방법 EOF가 R 인 경우
- 14. 이기종 데이터베이스 시스템이 실제로 사용되고 있습니까?
- 15. 실제로 아무것도하지 않는 NHibernate 기준이 있습니까?
- 16. 이 Maven 플러그인에는 실제로 잘못된 설명자가 있습니까?
- 17. uitableview의 색인이 실제로 사용되는시기를 알 수 있습니까?
- 18. Flex 구성 요소를 실제로 확장하는 방법이 있습니까?
- 19. 실제로 MVC 프레임 워크의 좋은 예가 있습니까?
- 20. 배열은 ASP.NET 2.0에서 실제로 길이가 고정되어 있습니까?
- 21. MFMailComposeViewController는 시뮬레이터에서 실제로 sendmail을 사용하기로되어 있습니까?
- 22. RawComparator를 실제로 훨씬 빠르게 구현하고 있습니까?
- 23. 이메일이 실제로 전송되는지 어떻게 알 수 있습니까?
- 24. PHP 인터페이스 : 실제로 어떻게 사용할 수 있습니까?
- 25. D2010에 대한 업데이트가 실제로 의미가 있습니까?
- 26. [super init] 메소드는 실제로 어디에 있습니까?
- 27. 어셈블리 모델 유형이 실제로 연결되어 있습니까?
- 28. 실행 파일에는 실제로 어떤 내용이 들어 있습니까?
- 29. Syslog에 실제로 1KB 메시지 제한이 있습니까?
- 30. int (x)는 실제로 무엇을하고 있습니까?
ctrl + z는 windows/dos입니다. ctrl + d는 유닉스이다. – gnud
오른쪽 및 기타 OS에는 파일 구분 기호 (28) 등이 사용되었습니다. 문자의 끝을 표시하기 위해 우리가 기뻐해야하는 또 하나의 이유가 더 이상 사용되지 않습니다. –
^D는 유닉스에서 EOF가 아닙니다. 오히려 Unix의 터미널 장치는 장치를 눌렀을 때 EOF 조건을 생성하는 제어 문자를 정의 할 수있게하며 기본값은^D입니다. 하지만 이것은^D에 대한 ASCII 바이트가 터미널에서 데이터 스트림에 나타나는 것을 의미하지는 않습니다 ... –