神奇的mmap系统调用
2017-04-25 18:21
260 查看
#include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <strings.h> #include <sys/mman.h> int main(int argc, char **argv) { if(2 != argc) { printf("Usage: %s <file>\n", argv[0]); return 0; } int fd = open(argv[1], O_RDONLY); if(-1 == fd) { perror("open"); return -1; } // void *mmap(void *addr, size_t length, int prot, int flags, // int fd, off_t offset); // 将fd所代表的文件映射到用户的虚拟地址空间 char *p = mmap(NULL, 10240, PROT_READ, MAP_SHARED, fd, 0); printf("%s", p); close(fd); }
mmap将打开的文件物理地址映射到用户虚拟地址空间,从而实现应用层直接操作物理文件
,
相关文章推荐
- 内存映射(mmap系统调用)
- Linux系统调用-- mmap/munmap函数详解
- 虚拟地址空间管理之mmap系统调用关系图
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap系统调用
- Linux内存管理 mmap系统调用
- Linux系统调用-- mmap/munmap函数详解【转】
- linux中mmap系统调用原理分析与实现
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
- mmap()函数系统调用
- linux中mmap系统调用原理分析与实现
- mmap()系统调用
- linux中mmap系统调用原理分析与实现
- Linux中mmap与munmap函数系统调用
- 内存分配的原理__进程分配内存有两种方式,分别由两个系统调用完成:brk和mmap(不考虑共享内存)
- 共享内存:使用内存映射接口mmap系统调用
- Linux系统调用--mmap/munmap函数详解
- Linux中brk()系统调用,sbrk(),mmap(),malloc(),calloc()的异同
- linux中mmap系统调用原理分析与实现
- 系统调用mmap--使用详解
- 基于tmpfs的mmap系统调用过程 2