Linux网络编程--文件空间映射mmap函数
来源:互联网 发布:php rpc框架 编辑:程序博客网 时间:2024/06/05 01:07
/*使用mmap对文件进行操作*/#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/mman.h>/*mmap*/#include <string.h>/*memset warning*/#include <stdio.h>#define FILELENGTH 80int main(void){ int fd = -1; /*将要写入文件的字符串*/ char buf[]="quick brown fox jumps over the lazy dog"; char *ptr = NULL; /*打开文件mmap.txt,并将文件长度缩小为0, 如果文件不存在则创建它,权限为可读写执行*/ fd = open("mmap.txt", O_RDWR/*可读写*/|O_CREAT/*不存在,创建*/|O_TRUNC/*缩小为0*/, S_IRWXU); if( -1 == fd){ /*打开文件失败,退出*/ return -1; } /*下面的代码将文件的长度扩大为80*/ /*向后偏移文件的偏移量到79*/ lseek(fd, FILELENGTH-1, SEEK_SET); /*随意写入一个字符,此时文件的长度为80*/ write(fd, 'a', 1); /*将文件mmap.txt中的数据段从开头到FILELENGTH字节的数据映射到内存中,对文件的操作立刻显示在文件上,可读写*/ ptr = (char*)mmap(NULL, FILELENGTH, PROT_READ|PROT_WRITE,MAP_SHARED, fd, 0); if( (char*)-1 == ptr){ /*如果映射失败,则退出*/ printf("mmap failure\n"); close(fd); return -1; } /*将buf中的字符串拷贝到映射区域中,起始地址为偏移16*/ memcpy(ptr+16, buf, strlen(buf)); /*取消文件映射关系*/ munmap(ptr, FILELENGTH); /*关闭文件*/ close(fd); return 0;}
1 0
- Linux网络编程--文件空间映射mmap函数
- 文件空间映射mmap()函数
- linux mmap 映射文件
- linux编程--获取文件状态与文件映射mmap .
- linux内存映射函数mmap
- linux内存映射函数 mmap
- Linux内存映射--mmap函数
- Linux内存映射--mmap函数
- linux内存映射函数mmap
- Linux 管道、mmap文件映射
- linux网络编程之共享内存简介和mmap 函数
- linux网络编程之共享内存简介和mmap 函数
- 内存映射函数mmap函数详解-linux
- 3Linux内存映射,mmap()函数
- 【Linux】mmap函数的内存映射
- Linux内核之mmap()内存映射函数
- Linux的mmap文件内存映射机制
- Linux的mmap文件内存映射机制
- 关于centos安装后一些命令找不到
- 中兴2016校招软件在线笔试题
- 增量构造法 (白书P188)
- linux创建目录
- 砾阳报表综合系统
- Linux网络编程--文件空间映射mmap函数
- C# TextBox 只能输入数字
- HTTP协议 (六) 状态码详解
- caffe filler
- C++ 优化的几个方法
- [视频] 闪存的未来 —— PMC制造
- 资料地址
- hive报错
- 几个咨询公司风格的PPT模板