FDATASYNC(2)

이름
fdatasync - 파일의 디스크에 있는 in-core데이타를 동기화한다.

사용법
#include <unistd.h>

#ifdef _POSIX_SYNCHRONIZED_IO

int fdatasync(int fd);

#endif

설명
fdatasync 는 시스템 호출이 반환되기 전에 디스크에서 파일의 모든 데이파버퍼를 플러쉬한다. fsync 와 비슷하지만, 액세스시간과 같은 메타데이타 업데이트를 요구하진 않는다. 액세스 데이타베이스나 로그파일이 작은 데이타 조각을 기록하고, 곧이어 쓰여진 데이 타을 확인하기 위해 fsync 를 호출하는 응용프로그램은 하드디스크에 물리적으로 저장된다. 운나쁘게도, fsync 가 상상 두개의 기록장치를 초기화 할 것이다: 하나는 새로 기록된 데이타를 위함이고, 또다른 하나는 inode에 저장된 수정시간을 업데이트하기 위함이다. 수정시간이 트랜젝션 개념의 한 부분이 아니라면 fdatasync 는 불필요한 디스크기록장치 inode를 피하기 위해 사용된다.

반환값
성공시, 0을 반환한다. 실패시, -1을 반환하고, errno 는 적절히 설정된다.

에러

EBADF
    fd 는 기록을 위해 열린 유효 파일 디스크립터이다.

EROFS, EINVAL
    fd 는 동기화를 지원하지 않는 특별한 파일을 경계짓는다.is bound to a special file which does not support synchronization.

EIO 에러가 동기화하는 동안 발생했다.

버그
현재(리눅스 2.0.23) fdatasync 는 fsync 와 같다.

호환
POSIX1b (formerly POSIX.4)

관련 항목
fsync(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 220-223 and 343.

역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 26일