파일 이 Windows와 Linux 모두에서 디렉토리 쓰기를 마치는 시점 을 결정할 수있는 방법이 있는지 궁금합니다 .
이것은 대부분 임시 파일이 아닌 파일에 대한 디렉토리를 지속적으로 폴링하는 대신 디스크에 기록이 완료되는 것을 간단히 듣기 위해 프로그램을 설정할 수 있습니다 (그러한 일을하는 것이 좋습니다).
답변
- 파일은 “디렉토리에 쓰지”않습니다. 데이터는 파일에 기록되며 파일은 디렉토리에 (하드) 링크 될 수 있습니다. 그러나 파일에 대한 데이터 쓰기 프로세스는 디렉토리와 관련이 없습니다. 그리고 하드 링크 프로세스는 원자 적이며 기다릴 “완료”가 없습니다.
- Windows에서 찾고있는 기능은
FindFirstChangeNotification()
입니다. - 이것은 수퍼 유저가 아닌 StackOverflow 주제입니다.
답변
리눅스의 경우이 질문을 살펴볼 수 있습니다. 토론은 C ++로 진행되었지만 아이디어 (선택한 답변이 아니라 대답)에서 여전히 좋습니다. 기본적으로 리눅스에서는 플래그를 사용하거나 /proc/pid/fd
프로세스를 볼 수 있습니다.
답변
적어도 Vista 이후 Windows에는 I / O 스케줄링 시스템이 있습니다.
또한 AHCI 모드의 최신 SATA 디스크에는 NCQ (Native Command Queuing) 라는 자체 통합 스케줄러가 있습니다.