Manpages

이 름

msync − 메 모 리 대 응 과 파 일 을 동 기 화 한 다 .

사 용 법

#include <unistd.h>
#include <sys/mman.h>

#ifdef _POSIX_MAPPED_FILES
#ifdef _POSIX_SYNCHRONIZED_IO

int msync(const void *start, size_t length, int flags);

#endif
#endif

설 명

msyncmmap(2)를 사 용 하 여 메 모 리 에 대 응 된 파 일 의 원 복 사 본 에 만 들 어 진 변 경 들 을 디 스 크 로 다 시 세 척 한 다 . 이 함 수 를 사 용 하 지 않 을 경 우 , munmap(2)이 호 출 되 기 전 에 변 경 내 용 들 이 디 스 크 로 다 시 쓰 여 지 는 것 은 보 장 되 지 않 는 다 . 더 정 확 히 말 하 면 , start 로 시 작 하 여 length 길 이 를 가 지 는 메 모 리 영 역 에 해 당 하 는 파 일 의 일 부 분 이 갱 신 된 다 . flags 인 자 는 MS_ASYNC, MS_SYNC 그 리 고 MS_INVALIDATE 집 합 들 을 가 진 다 . 그 러 나 , MS_ASYNC 와 MS_SYNC를 동 시 에 가 지 지 는 않 는 다 . MS_ASYNC는 갱 신 이 스 케 줄 됐 지 만 , 호 출 은 즉 시 반 환 된 다 는 걸 명 시 한 다 . MS_SYNC는 갱 신 을 요 구 하 고 끝 나 기 를 기 다 린 다 . MS_INVALIDATE는 같 은 파 일 의 다 른 대 응 들 을 무 효 화 하 도 록 요 구 한 다 (그 래 서 단 지 쓰 여 졌 을 경 우 만 새 로 운 값 으 로 갱 신 된 다 .)

반 환 값

성 공 시 , 0이 리 턴 된 다 . 에 러 시 , −1이 리 턴 되 며 errno 는 적 당 한 값 으 로 설 정 된 다 .

에 러

EINVAL

start 가 PAGESIZE의 배 수 가 아 니 거 나 , MS_ASYNC | MS_INVALIDATE | MS_SYNC 외 다 른 비 트 들 이 flags에 설 정 되 어 있 다 .

EFAULT

지 정 된 메 모 리 (또 는 그 것 의 일 부 분 )가 대 응 되 지 않 았 다 .

호 환

POSIX.1b (formerly POSIX.4)

관 련 항 목

mmap(2), B.O. Gallmeister, POSIX.4, O’Reilly, pp. 128-129 and 389-391.

역 자

정 강 훈 <skyeyes [AT] soback.net>, 2000년 7월 3일