Linux进程通信之mmap
mmap() 函数: void *mmap(void* addr,size_t length,int port,int flags,int fd,off_t offset); 返回:成功:返回创建的映射区首地址;失败:MAP_FAILED 宏 参数: addr: 建立映射区的首地址,由linux内核决定。使用时直接传递NULL; length: 欲创建映射区的大小 port: 映射区权限PROT _READ、PROT_WRITE 、PROT _READ|PROTWRITE flags: 标志位参数(常用于设定更新物理区域、设置共享、创建匿名映射区) MAP_SHARED: 会将映射区所做的操作反射到物理设备上 MAP_PRIVATE: 映射区所作的修改不会反映到物理设备。 fd: 用来建立映射区的文件描述符 offset: 映射文件的偏移(4K的整数倍) /*** mmap.c ***/ #include<stdio.h> #include<fcntl.h> #include<unistd.h> #include<string.h> #include<stdlib.h> #include<sys/mman.h> int main() { int len,ret; char *p = NULL; int fd = open("mytest.txt",O_CREAT|O_RDWR