2015 这篇文章主要介绍了C语言编程中建立和解除内存映射的方法,分别为mmap()函数和munmap()函数的使用,需要的朋友可以参考下 C语言mmap()函数:建立内存映射 定义函数:void *mmap(void *start, size_t length, int prot, int flags, int fd, off_t offsize); 函数说明:mmap()用来将某个文件内容映射到内存中,对该内存区域的存取即是直接对该文件内容的读写。 参数说明: 返回值:若映射成功则返回映射区的内存起始地址,否则返回MAP_FAILED(-1),错误原因存于errno 中。 错误代码:
范例:利用mmap()来读取/etc/passwd 文件内容。
执行结果:
C语言munmap()函数:解除内存映射 定义函数: 函数说明:munmap()用来取消参数start 所指的映射内存起始地址,参数length 则是欲取消的内存大小。当进程结束或利用exec 相关函数来执行其他程序时,映射内存会自动解除,但关闭对应的文件描述词时不会解除映射。 返回值:如果解除映射成功则返回0,否则返回-1。错误原因存于errno 中错误代码EINVAL参数 start 或length 不合法。 范例:参考mmap() |
|