记得在上周写过一个例子就是父子进程通过创建一个共享的虚存间来进行通信,今天又练习了一下,其实还可以把文件映射到进程的用户空间,那么,访问文件就像访问内存一样,我们就根本不需要用专门访问文件的read(),write()等函数操作了,可方便了,下面我们看一个简单的例子吧!
- #include<stdio.h>
- #include<sys/mman.h>
- #include<fcntl.h>
- int main()
- {
- int i,fd;
- char *buf;
- fd=open("test_data",O_RDONLY);
- buf=mmap(0,12,PROT_READ,MAP_PRIVATE,fd,0);
- for(i=0;i<12;i++)
- printf("%c\n",buf[i]);
- return 0;
- }
说明一下 ,test_data是一个文件,里面放的是hello world!,你也可以往进写任何东西的,大家可以通过
man mmap来查看这个函数的用法!
看吧,到最后我们直接可以把我文件的内容用访问数组的方式显示出来。
阅读(1164) | 评论(0) | 转发(1) |