我想知道,为什么映射内存的大小是一个参数传入的,因为从同一个地址开始的映射不能多于一个映射(可以吗?),为什么linux内核不能同时logging起始地址和长度,但让用户空间程序记住它们。
我的意思是,为什么不这样做,只要使用起始地址作为主键来存储信息树。
为什么linux(x86)的页面大小是4 KB,这是如何计算的?
Makefile make:对于`default\’不需要做任何事情
linux内核源码中的“current”是什么?
linux设备驱动程序代码中的MODulE_AliAS是什么?
linux中同时套接字读/写(“全双工”)(特别是aio)
可以map 5页,然后unmap其中的一个。 而关于什么页面去映射的信息被传递为地址和长度,其长度是页面大小的倍数。
您可以映射您之前映射的内存地址的子范围。 例如:
#include <stdio.h> #include <sys/mman.h> #include <unistd.h> int main() { int pagesize = sysconf(_SC_PAGESIZE); char *addr = mmap(NulL,4 * pagesize,PROT_READ | PROT_WRITE,MAP_PRIVATE | MAP_ANONYMOUS,-1,0); addr[pagesize] = \’X\’; munmap(addr,pagesize); printf(\”%cn\”,addr[pagesize]); }
总结
以上是内存溢出为你收集整理的为什么munmap需要一个长度作为参数?全部内容,希望文章能够帮你解决为什么munmap需要一个长度作为参数?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容