mmap函数原型
时间: 2023-08-11 18:16:32 浏览: 89
mmap examplecode
4星 · 用户满意度95%
mmap() 函数的原型如下:
```c
void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
```
参数说明:
- `addr`:指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址。
- `length`:代表将要映射的内存空间的大小。
- `prot`:代表映射区域的保护方式,可以为以下几种:
- `PROT_EXEC`:可执行的程序。
- `PROT_READ`:可读。
- `PROT_WRITE`:可写。
- `PROT_NONE`:不能访问。
- `flags`:影响映射区域的各种特性。常用的值有:
- `MAP_SHARED`:与其它所有映射这个对象的进程共享映射区域。修改映射区域的内容会反映到所有共享这个对象的进程中。
- `MAP_PRIVATE`:建立一个写入时私有的映射区域。修改映射区域的内容仅对当前进程有效,不会写入到原文件中。
- `MAP_FIXED`:只有在 addr 为 NULL 时有效。如果指定的地址不能使用,函数会失败返回。
- `MAP_ANONYMOUS`:匿名映射,映射区域不与任何文件关联。不需要 fd 参数。
- `fd`:需要映射到内存的文件描述符。如果不是基于文件的映射,可以用 -1 代替。
- `offset`:文件映射的偏移量。通常设置为 0。
返回值:
成功时,返回映射区域的起始地址;失败时,返回 MAP_FAILED(-1),错误原因存于 errno 中。
阅读全文