NAME

aio_fsync - 비동기 파일 동기화

SYNOPSIS

#include <aio.h>

int aio_fsync(int op, struct aiocb *aiocbp);

-lrt로 링크.

DESCRIPTION

aio_fsync() 함수는 aiocbp->aio_filedes에 연계된 모든 미처리 비동기 I/O 동작들에 동기화를 한다. (aiocb 구조체에 대한 설명은 aio(7) 참고.)

더 정확하게는 opO_SYNC이면 fsync(2)를 호출한 것처럼 현재 큐에 있는 모든 I/O 동작들이 완료된다. 그리고 opO_DSYNC이면 이 호출은 fdatasync(2)의 비동기 형태가 된다.

참고로 이 호출은 요청만 할 뿐이다. 즉 I/O가 완료되기를 기다리지 않는다.

aiocbp가 가리키는 구조체에서 aio_fildes 외에 이 호출에서 유일하게 사용하는 필드는 aio_sigevent 필드(sigevent 구조체. sigevent(7)에서 설명)인데, 원하는 비동기 완료 알림 종류를 나타낸다. 다른 필드들은 모두 무시된다.

RETURN VALUE

성공 시 (동기화 요청을 성공적으로 큐에 넣었으면) 함수가 0을 반환한다. 오류 시 -1을 반환하며 오류를 나타내도록 errno를 설정한다.

ERRORS

EAGAIN
자원 부족.
EBADF
aio_fildes가 쓰기 가능하게 열린 유효한 파일 디스크립터가 아니다.
EINVAL
이 파일에서 동기화 된 I/O를 지원하지 않는다. 또는 opO_SYNCO_DSYNC가 아니다.
ENOSYS
aio_fsync()가 구현돼 있지 않다.

VERSIONS

glibc 2.1부터 aio_fsync() 함수가 사용 가능하다.

ATTRIBUTES

이 절에서 사용하는 용어들에 대한 설명은 attributes(7)를 보라.

인터페이스 속성
aio_fsync() 스레드 안전성 MT-Safe

CONFORMING TO

POSIX.1-2001, POSIX.1-2008.

SEE ALSO

aio_cancel(3), aio_error(3), aio_read(3), aio_return(3), aio_suspend(3), aio_write(3), lio_listio(3), aio(7), sigevent(7)


2021-03-22