munmap 子例程
用途
取消映射内存页面。
库
标准 C 库 (libc.a)
语法
描述
munmap 子例程取消映射映射文件或共享内存区域或匿名内存区域。 munmap 子例程仅取消映射从对 mmap 子例程的调用创建的区域。
如果地址位于 munmap 子例程未映射的区域中,并且该区域随后未再次映射,那么对该地址的任何引用都将导致向进程传递 SIGSEGV 信号。
参数
| 项 | 描述 |
|---|---|
| addr | 指定要取消映射的区域的地址。 必须是 sysconf 子例程使用 Name 参数的 _SC_PAGE_SIZE 值返回的页面大小的倍数。 |
| len | 指定要取消映射的区域的长度 (以字节计)。 如果 len 参数不是 sysconf 子例程使用 Name 参数的 _SC_PAGE_SIZE 值返回的页面大小的倍数, 区域的长度向上舍入为页面大小的下一个倍数。 |
返回值
成功时, munmap 子例程返回 0。 否则,返回-1并设置errno全局变量来指示错误。
错误代码
如果 munmap 子例程不成功,那么 errno 全局变量设置为以下值:
| 项 | 描述 |
|---|---|
| EINVAL | addr 参数不是 sysconf 子例程使用 Name 参数的 _SC_PAGE_SIZE 值返回的页面大小的倍数。 |
| EINVAL | 应用程序要求使用符合《单一 UNIX 规范》第 2 版的行为,且 len参数为 0。 |