728x90
반응형
1.1. 사용법
1.2. 설명
mmap() 함수는 fd로 지정된 파일(혹은 다른 객체)에서 offset을 시작으로 length바이트 만큼을 start주소로 대응시키도록 한다. start주소는 단지 그 주소를 사용했으면 좋겠다는 정도로 보통 0을 지정한다. mmap는 지정된 영역이 대응된 실제 시작위치를 반환한다. prot인자는 원하는 메모리:::보호모드(:12)를 설정한다. 사용할 수 있는 비트는 다음과 같다.
PROT_EXEC
flags는 대응된 객체의 타입, 대응 옵션, 대응된 페이지 복사본에 대한 수정이 그 프로세스(:12)에서만 보일 것인지 아니면, 다른 참조하는 프로세스와 공유할 것인지를 설정한다. 다음과 같은 비트들을 사용할 수 있다.
PROT_READ
PROT_WRITE
PROT_NONE
MAP_FIXED
위의 3개의 플래그는 POSIX.1b에 규정되어 있다. 리눅스는 MAP_DENYWRITE, MAP_EXECUTABLE, MAP_ANON(YMOUS)도 지원한다.
지정된 주소 이외의 다른 주소를 선택하지 않는다. 지정된 주소가 사용될 수 없다면 mmap()는 실패한다. 만일 MAP_FIXED가 지정되면, start는 페이지 크기의 배수이어야 한다. 이 옵션은 사용하지 않는 것이 좋다.
MAP_FIXED지정된 주소 이외의 다른 주소를 선택하지 않는다. 지정된 주소가 사용될 수 없다면 mmap()는 실패한다. 만일 MAP_FIXED가 지정되면, start는 페이지 크기의 배수이어야 한다. 이 옵션은 사용하지 않는 것이 좋다.
MAP_SHAREDMAP_PRIVATE
1.3. 반환값
1.4. 에러
EBADF
fd가 유효한 파일 기술자가 아니다.
EACCESEINVAL
ETXTBUSY
EAGAIN
ENOMEM
1.5. 예제
728x90
반응형
'IT > 리눅스마스터1급' 카테고리의 다른 글
프로세스 스케줄링 (0) | 2022.04.28 |
---|---|
txqueuelen (0) | 2022.04.25 |
Linux 메모리 효율을 위한 vfs_cache_pressure (0) | 2022.04.10 |
메모리 & 백업 (0) | 2018.02.24 |
Quota와 시스템 자동화 (0) | 2018.02.23 |