비동기함수 sync, 동기함수 fsync
유닉스(리눅스)에서는 메모리 정보를 disk에 적을때 바로 disk에 적지 않는다. 먼저 CPU바로 옆에있는 Cache에 적은다음에 그 정보를 disk로 옮긴다.
sync 또는 fsync 시스템콜을 이용해서 write을 할 수 있는데, sync은 비동기함수이기떄문에 write명령을 CPU에 전달하고 리턴된다. 즉 write이 완료되지 않은 상태이다.
반면 fsync은 동기함수로 write가 끝날때 까지 기다렸다가 리턴된다.
함수의 원형
void sync();
int fsync(int fd);
fsync는 인수로 받은 fd에 관련된 모든 변경 자료를 동기화 한후 리턴된다.