Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1496465
  • 博文数量: 148
  • 博客积分: 2234
  • 博客等级: 大尉
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-17 21:34
个人简介

未来很长。

文章存档

2017年(7)

2016年(4)

2015年(1)

2014年(6)

2013年(31)

2012年(99)

分类: LINUX

2012-08-09 19:21:13

记得在上周写过一个例子就是父子进程通过创建一个共享的虚存间来进行通信,今天又练习了一下,其实还可以把文件映射到进程的用户空间,那么,访问文件就像访问内存一样,我们就根本不需要用专门访问文件的read(),write()等函数操作了,可方便了,下面我们看一个简单的例子吧!

点击(此处)折叠或打开

  1. #include<stdio.h>
  2. #include<sys/mman.h>
  3. #include<fcntl.h>
  4. int main()
  5. {
  6.     int i,fd;
  7.     char *buf;
  8.     fd=open("test_data",O_RDONLY);
  9.     buf=mmap(0,12,PROT_READ,MAP_PRIVATE,fd,0);
  10.     for(i=0;i<12;i++)
  11.             printf("%c\n",buf[i]);
  12.     return 0;
  13. }
说明一下 ,test_data是一个文件,里面放的是hello world!,你也可以往进写任何东西的,大家可以通过
man mmap来查看这个函数的用法!
看吧,到最后我们直接可以把我文件的内容用访问数组的方式显示出来。
阅读(1164) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~