sync와 fflush
글쓴이: seeker / 작성시간: 수, 2003/02/26 - 8:52오전
sync ( fsync )가
커널버퍼를 디스크에 write하고,
fflush는
standard library 내의 버퍼를 커널버퍼에 write하는걸로 알고있는데.
이것이 맞나요?
2개의 차이점을 알고싶습니다.
만약, 그렇다면, write( filedescriptor , buf ,sizeof buf) 동작이 한번 일어날때마다, 디스크파일이 아닌 커널버퍼에 buf내용이 쓰여지는건가요?
또, 그렇다면 write를 이용하더라도 시스템이 갑자기 down(crash)되면
디스크(파일)에 기록되지 않고 날라간 데이터가 있을수있을것같은데요.
Forums:
맞는것 같네요..
fflush man page의 NOTE에 적혀있기를...
fflush는 C 라이브러리에 의해 제공된 사용자 공간의 데이터만 flush한다.
디스크에 확실히 쓰기위해서는, sync나 fsync로 커널 버퍼를 마찬가지로 flush해야 한다.
댓글 달기