디스크에 시스템 버퍼링 I/O 데이터 플러시
Windows는 파일 읽기 및 쓰기 작업의 데이터를 시스템 관리 데이터 버퍼에 저장하여 디스크 성능을 최적화합니다. 애플리케이션이 파일에 쓸 때 시스템은 일반적으로 데이터를 버퍼링하고 정기적으로 디스크에 데이터를 씁니다. 애플리케이션은 FlushFileBuffers 함수를 사용하여 운영 체제가 이러한 데이터 버퍼의 내용을 디스크에 강제로 쓰도록 할 수 있습니다. 또는 애플리케이션은 CreateFile 함수를 사용하여 파일을 만들거나 열 때 FILE_FLAG_NO_BUFFERING 플래그를 설정하여 쓰기 작업이 데이터 버퍼를 무시하고 디스크에 직접 쓰도록 지정할 수 있습니다.
파일을 닫을 때 내부 버퍼에 데이터가 있는 경우 운영 체제는 파일을 닫기 전에 버퍼의 내용을 디스크에 자동으로 쓰지 않습니다. 애플리케이션이 파일을 닫기 전에 운영 체제가 버퍼를 디스크에 강제로 쓰도록 하지 않으면 캐싱 알고리즘이 버퍼를 쓰는 시기를 결정합니다.
참고
읽기 또는 쓰기 작업을 사용하는 동안 데이터 버퍼에 액세스하면 버퍼가 손상될 수 있습니다. 애플리케이션은 작업이 완료될 때까지 읽기 또는 쓰기 작업에서 사용 중인 데이터 버퍼를 읽거나, 쓰거나, 재할당하거나, 해제해서는 안 됩니다.