- mmap系统调用
void* mmap ( void * addr , size_t len , int prot , int flags ,int fd , off_t offset )
mmap负责将文件映射到虚拟地址空间,通过对这段内存的读取和修改而不用read和write对文件进行修改。
2.maap函数的参数问题
addr:表示映射区的起始地址,NULL表示映射地址由系统自行安排
len:表示映射到内存的文件长度
prot:映射区的保护方式
PROT_EXEC:映射区可被执行
PROT_READ:映射区可被读
pROT_WRITE:映射曲可被写
flags:映射区的特性
MAP_SHARED:写入映射区的数据可以复制回文件,且允许其他映射该文件的进程共享。
MAP_PRIVATE:对映射区的写入操作会产生一个映射区的复制(copy-on-write), 对此区域所做的修改不会写回原文件。
fd: 由open返回的文件描述符, 代表要映射的文件。
offset: 以文件开始处的偏移量, 必须是分页大小的整数倍, 通常为0, 表示从文件头开始映射。
编程如下:
时间: 2024-10-29 19:10:37