2
차단 모드에서 파일/장치에 쓸 경우 write()
호출은 모든 바이트 (신호 중단이 없다고 가정)가 Buffered Cache(Kernel Buffer)
으로 돌아 오거나 모든 바이트를 파일/장치에 기록 할 때 반환됩니다. (이것은 내 이전 question의 확장입니다.)쓰기 시스템 호출은 언제 반환합니까?
차단 모드에서 파일/장치에 쓸 경우 write()
호출은 모든 바이트 (신호 중단이 없다고 가정)가 Buffered Cache(Kernel Buffer)
으로 돌아 오거나 모든 바이트를 파일/장치에 기록 할 때 반환됩니다. (이것은 내 이전 question의 확장입니다.)쓰기 시스템 호출은 언제 반환합니까?
성공한 경우 데이터를 커널 메모리에 쓴 후 write
이 반환됩니다. write
시스템 호출을 사용하면 디스크에 쓰는 것에 대한 보장이 없으므로이 경우 fsync
이 필요합니다. 실제로 fsync
은 비트가 실제로 플래터 자체에 쓰여지는 것을 보증하지 않습니다. 단지 IO 작업이 완료된 것입니다.
(물론이 동작을 변경하는 데 사용할 수있는 다양한 플랫폼 관련 모드와 설정이 있습니다.)