크기가 5MB 인 파일이 있다고 가정 해보십시오. 나는 C로 쓰기 모드로 열었다가 정확히 5 MB의 정크 데이터로 채 웁니다. 이전에 사용 된 동일한 디스크 섹터를 덮어 쓰거나 OS가 새 데이터를 위해 새 디스크 섹터를 선택합니까?파일을 덮어 쓸 때 작성되는 부분은 무엇입니까?
1
A
답변
4
파일 시스템에 따라 다릅니다.
전통적으로 대답은 '그렇습니다. 동일한 섹터가 새 데이터로 덮어 쓰게됩니다'입니다.
저널 파일 시스템에서는 응답이 다를 수 있습니다. 플래시 드라이브 시스템을 사용하면 대답은 거의 확실합니다. 현재 작성된 부문을 지우지 않도록 새로운 부문이 작성 될 것입니다. '
3
파일 시스템은 원하는 모든 것을 할 수 있습니다. 그러나 실제 파일 시스템은 동일한 섹터에 데이터를 다시 기록합니다.
이미지 만약 그렇지 않다면. 파일에 쓸 때마다 파일 시스템은 새로운 자유 섹터를 찾아서 해당 섹터에 쓰고 파일의 메타 데이터를 업데이트하여 새로운 섹터를 가리켜 야합니다. 또한 인접한 5MB 파일의 중간에 단일 섹터를 작성하면 조각이 나올 수 있기 때문에 끔찍한 파일 조각화가 발생합니다. 따라서 동일한 분야로 다시 쓰는 것이 훨씬 쉽습니다.
내가 생각할 수있는 유일한 예외는 JFFS2입니다. 플래시의 마모 균등화를 지원하기 위해 설계 되었기 때문입니다.
이제 파일 시스템은 동일한 섹터에 쓰지만 디스크 하드웨어는 원하는 위치에 쓸 수 있습니다. 실제로 SSD/플래시 드라이브에서 하드웨어는 wear leveling을 처리하기 위해 데이터를 다른 섹터에 기록 할 수 있습니다. 그러나 이는 OS/파일 시스템에 투명합니다. (sector sparing으로 인해 하드 드라이브에서도 가능합니다.)
관련 문제
- 1. 마우스를 HTML로 덮어 쓸 때
- 2. ihttphandler가 정확히 파일을 쓸 때
- 3. 카테고리가있는 메소드를 덮어 쓸 때 원래 구현을 호출하는 방법은 무엇입니까?
- 4. 예외를 덮어 쓸 수 있습니까?
- 5. 파일을 쓸 때 파일 세분화
- 6. C++ - 덮어 쓸 때 Destructor가 호출 될 때 클래스 멤버
- 7. 파일에 쓸 때 기존 파일의 내용을 덮어 쓰지 마십시오.
- 8. 다른 사용자가 현재 열어 놓은 파일을 덮어 쓸 수 있습니까?
- 9. FTP를 통해 Wordpress 파일을 덮어 쓸 수 없습니다.
- 10. 파일을 매우 빠르게 작성하면 파일을 덮어 쓸 때 더 오래 걸릴 것입니다.
- 11. JTable 셀을 덮어 쓸 준비가되었습니다.
- 12. NSUserDefault를 덮어 쓸 수 있습니까?
- 13. 리소스 폴더의 파일을 저장하고 덮어 쓸 수 있습니까?
- 14. Tridion 2011 SP1 설치 프로그램이 파일을 덮어 쓸 수 있습니까?
- 15. 다른 msi가 설치 한 xap 파일을 덮어 쓸 수 있습니까?
- 16. svn_load_dirs.pl 또는 유사하게 저장소 파일을 자동으로 덮어 쓸 수 있습니까?
- 17. 업로드 된 파일을 대체/덮어 쓸 수 있습니까?
- 18. 메 자닌 파일을 덮어 쓰는 방법은 무엇입니까?
- 19. 어떻게하면 디렉토리를 덮어 쓸 수 있습니까?
- 20. __init__를 덮어 쓸 때 속성을 사용할 수 없습니까?
- 21. 는 webrorsconfig를 루트 파일로 덮어 쓸 때 customerrors 태그를 사용합니다.
- 22. IIS7에서 webapp.dll을 덮어 쓸 때 컴파일 오류가 발생합니다.
- 23. "new"를 덮어 쓸 때 컴파일 오류가 발생합니다.
- 24. 세션 및 뷰 범위 - 덮어 쓸 값
- 25. 로그 파일을 쓸 위치는?
- 26. htaccess 파일을 덮어 쓰시겠습니까?
- 27. EXC_BAD_ACCESS plist 파일을 읽고 쓸 때
- 28. errors : 내가 XML 파일을 쓸 때
- 29. 플래시 디스크에 파일을 쓸 때 ByteArray를 작성하십시오.
- 30. 배열에 C++로 파일을 쓸 때
반드시 그렇지는 않습니다. 왜 중요합니까? 이것은 순전히 이론적 인 질문입니까, 아니면 해결하려는 문제가 있습니까? 파일 시스템은 추상화를위한 것입니다. –