Linux访问内存映射的对象
来源:互联网 发布:js设置input隐藏 编辑:程序博客网 时间:2024/05/15 15:21
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <sys/mman.h>#include <fcntl.h>#define FILE_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH)#definemin(a,b)((a) < (b) ? (a) : (b))#definemax(a,b)((a) > (b) ? (a) : (b))int main(int argc, char** argv){ int fd, i; char* ptr; size_t filesize, mmapsize, pagesize; if(argc != 4) { printf("usage: test1 <pathname> <filesize> <pagesize>"); } filesize = atoi(argv[2]); pagesize = atoi(argv[3]); fd = open(argv[1], O_RDWR | O_CREAT | O_TRUNC, FILE_MODE); lseek(fd, filesize - 1, SEEK_SET); write(fd, "", 1); ptr = mmap(NULL, mmapsize, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); close(fd); pagesize = sysconf(_SC_PAGESIZE); printf("PAGESIZE = %ld\n", (long)pagesize); for(i = 0; i < max(filesize, mmapsize); i += pagesize) { printf("ptr[%d] = %d\n", i, ptr[i]); ptr[i] = 1; printf("ptr[%d] = %d\n", i + pagesize - 1, ptr[i + pagesize - 1]); ptr[i + pagesize - 1] = 1; } printf("ptr[%d] = %d\n", i, ptr[i]); exit(0);}
输出结果:
chanlp@chanlp-Presario-V3700-Notebook-PC:~/Desktop/shm$ od -x -A d foo 0000000 0001 0000 0000 0000 0000 0000 0000 00000000016 0000 0000 0000 0000 0000 0000 0000 0000*0004080 0000 0000 0000 0000 0000 0000 0000 01000004096 0001 0000 0000 0000 0000 0000 0000 00000004112 0000 0000 0000 0000 0000 0000 0000 0000*0004992 0000 0000 0000 00000005000
注:od命令 -x选项指定以十六进制输出各字节 -A d选项指定以十进制输出地址
- Linux访问内存映射的对象
- Linux的内存映射
- linux的内存映射
- Linux下:POSIX内存对象映射+POSIX内存对象信号量
- 内存映射的文件访问 c++ 类
- PCIE的mmio内存映射访问机制
- Linux 的内存映射模型
- Unix/Linux的内存映射
- [TZ]内存与IO访问(2)--Linux地址映射
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- Linux--高端内存的映射方式
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- 获取iframe里的值
- 可以跑在Linux-3.0 .x 上的 LINUX设备驱动程序(LDD3)例程
- 第一个Android程序
- JS选中(确定value值的)radiobutton
- FLAGS标志寄存器
- Linux访问内存映射的对象
- LUA脚本的使用
- 网页设计:如何设计细线条的表格
- Android Studio IDE的 LogCat如何过滤指定应用的调试信息
- 利用Maven调用自己的jar包
- Ubuntu默认的root密码
- 网页设计表格单元格线条及边框设置
- jQuery EasyUI中文帮助手册(API版本:1.2.4) (非常全 一般一个网站用这一个就够了)
- 隐身按钮