MSYNC
Section: 리눅스 프로그래머 매뉴얼 (2)
Updated: 1996년 5월 12일
Index
Return to Main Contents
이름
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
는 적당한 값으로 설정된다.
에러
- 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@soback.kornet.net>, 2000년 7월 3일
Index
- 이름
-
- 사용법
-
- 설명
-
- 반환값
-
- 에러
-
- 호환
-
- 관련 항목
-
- 역자
-
This document was created by
man2html,
using the manual pages.
Time: 08:07:00 GMT, March 25, 2004