설명

파일로 아직 쓰기가 되지 않은 메모리의 내용을 모두 쓰기가 되도록 합니다. sync()가 모든 메모리에 대해서라면 fsync()는 지정된 파일 디스크립터에 대해 진행합니다.

헤더 unistd.h
형태 int fsync (int fd)
반환 int 성공: 0, 실패: -1
예제
#include <stdio.h>   
#include <string.h>  // strlen()
#include <fcntl.h>   // open()
#include <unistd.h>  // sync()

int main()
{
   int   fd;
   char *str = "forum.falinux.comn";

   fd = open( "test.txt", O_WRONLY ¦ O_CREAT, 0644);

   write( fd, str, strlen( str));
   if ( -1 == fsync( fd))            // 버퍼의 내용을 모두 쓰기를 합니다.
      printf( "fsync() 실패");     
      
   close( fd);
}