munmap 서브루틴

용도

메모리의 페이지를 맵핑 해제합니다.

라이브러리

표준 C 라이브러리(libc.a)

구문

#include <sys/types.h>
#include <sys/mman.h>
int munmap ( addr len)
void *addr;
size_t len;

설명

munmap 서브루틴은 맵핑된 파일이나 공유 메모리 영역 또는 익명 메모리 영역을 맵핑 해제합니다. munmap 서브루틴은 호출에서 작성된 영역을 mmap 서브루틴으로만 맵핑 해제합니다.

주소가 munmap 서브루틴에 의해 맵핑되지 않은 리젼에 있고 해당 리젼이 이후에 다시 맵핑되지 않는 경우, 해당 주소에 대한 모든 참조로 인해 프로세스에 SIGSEGV 신호가 전달됩니다.

매개변수

항목 설명
addr 맵핑 해제할 리젼의 주소를 지정합니다. Name 매개변수에 _SC_PAGE_SIZE 값을 사용하여 sysconf 서브루틴에서 리턴한 페이지 크기의 배수여야 합니다.
Len 맵핑 해제할 영역의 길이 (바이트) 를 지정합니다. len 매개변수가 Name 매개변수에 대해 _SC_PAGE_SIZE 값을 사용하여 sysconf 서브루틴에서 리턴된 페이지 크기의 배수가 아닌 경우, 영역의 길이는 페이지 크기의 다음 배수로 반올림됩니다.

리턴 값

성공하면 munmap 서브루틴은 0을 리턴합니다. 그렇지 않으면 -1을 리턴하고 errno 전역 변수를 설정하여 오류를 표시합니다.

오류 코드

munmap 서브루틴이 실패하면, errno 전역 변수는 다음 값으로 설정됩니다.

항목 설명
EINVAL addr 매개변수는 Name 매개변수에 _SC_PAGE_SIZE 값을 사용하여 sysconf 서브루틴에서 리턴한 페이지 크기의 배수가 아닙니다.
EINVAL 애플리케이션이 Single UNIX ® Specification, Version 2 준수 동작을 요청했으며 len 인수가 0입니다.