MSYNC(2) | 리눅스 프로그래머 매뉴얼 | MSYNC(2) |
이름¶
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
설명¶
msync 는 mmap(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 는 적당한 값으로 설정된다.
에러¶
호환¶
POSIX.1b (formerly POSIX.4)
관련 항목¶
mmap(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 128-129 and 389-391.
역자¶
정강훈 <skyeyes@soback.kornet.net>, 2000년 7월 3일
1996년 5월 12일 | Linux 1.3.86 |