MSYNC(2)

명칭
msync - MAP 된 area를 동기화한다

프로그램 라이브러리
libc

서식
<sys/types.h> <sys/mman.h> int msync(void *addr, size_t len, int flags)

해설
msync() 시스템 콜은, 수정된 페이지를 파일 시스템에 기입해 파일 수정 시각을 갱신합니다. len 하지만 0 의 경우, addr (을)를 포함한 리젼내의 모든 수정이 끝난 페이지가 플래시 됩니다. len 하지만 0 이 아닌 경우, addr (으)로부터 len-1 의 범위를 포함한 페이지만이 조사할 수 있습니다. flags 인수는 다음과 같이 지정할 수 있습니다.

    MS_ASYNC	즉시 돌아옵니다
    MS_SYNC		동기 기록을 실행합니다
    MS_INVALIDATE	캐쉬된 데이터를 모두 무효로 합니다

반환값

에러
msync() (은)는 다음의 경우에 실패합니다.

[EINVAL]
    addr (은)는 하드웨어 페이지 사이즈의 배수가 아닙니다.

[EINVAL]
    len 하지만 너무 큰지, 또는 부입니다.

[EINVAL]
    flags 에 MS_ASYNC 와 MS_INVALIDATE 의 양쪽 모두가 지정되었습니다. 이러한 플래그는 동시에 지정할 수 없습니다.

[EIO]
    파일 시스템에 쓰기간에 입출력 에러가 발생했습니다.

관련 항목
madvise(2), mincore(2), mprotect(2), munmap(2)

역사
msync() 함수는 4.4BSD 그리고 처음 등장했습니다.