ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C/C++ sync(2), fsync(2), fdatasync(2)
    C,C++ & Linux 2020. 5. 16. 23:31
    728x90

    함수 기능

    OS에서는 파일 쓰기 작업의 성능을 위해 버퍼 캐시에 담아뒀다가 일정 주기에 한 번에 디스크에 반영합니다.

    이 때 버퍼 캐시의 내용을 디스크에 반영하면서 동기화를 맞춰주는 시스템 함수가 sync 계열의 함수입니다.

     

    sync(2)

    시스템 버퍼 캐시의 내용을 디스크에 쓰고, 비워줍니다.

     

    fsync(2)

    지정한 파일의 시스템 버퍼 캐시의 내용을 디스크에 쓰고, 비워줍니다.

     

    fdatasync(2)

    특정 파일의 시스템 버퍼 캐시의 내용을 디스크에 쓰되 파일의 일부에만 영향을 줍니다. 그리고 버퍼 캐시를 비워줍니다.

    함수 원형

    #include <unistd.h>
    
    void sync();
    int fsync(int fd);
    int fdatasync(int fd);

    매개변수

    fd

    데이터 동기화를 맞출 파일 디스크립터

    반환값

    성공 시 0 리턴

    에러 시 -1 리턴하고 errno 설정

     

     

     

     

     

     

     

     

    리눅스시스템프로그래밍 저자 : 홍지만
    https://book.naver.com/bookdb/book_detail.nhn?bid=14623672

    책에 기술된 예제 프로그램입니다. 책 내부에는 훨씬 더 많은 자료가 있습니다. (개인적으로 좋았습니다.)

    'C,C++ & Linux' 카테고리의 다른 글

    C/C++ access(2)  (1) 2020.05.17
    C/C++ stat(2), lstat(2), fstat(2)  (0) 2020.05.17
    C/C++ dup2()  (0) 2020.05.16
    C/C++ dup()  (0) 2020.05.16
    C/C++ pread(), pwrite()  (0) 2020.05.14

    댓글

Designed by Tistory.