[讨论] 请教有关内存映射的问题

wonderglass   2010-2-5 17:21 楼主
请教我把一个文件映射到内存:
char * file_map;
file_map=mmap(NULL, file_length, PROT_READ, MAP_PRIVATE,  fd, 0);     /* file_length是以字节为单位的文件长度, fd是打开的文件指针*/
接下来读文件数据: unsigned short t=*file_map;
请问 1) 文件是什么时候读到内存的,是在建立映射的时候就读进来,还是执行 unsigned short t=*file_map; 的时候才读到内存?
2) 第一次读到内存后,第二次再执行unsigned short t=*file_map; (内存指针仍然指向同一个单元),这时是去读文件还是直接从内存中读?
3)这种内存映射和读文件方法一次只能读取一个字节(8位), 有没有办法一次读取两个字节(16位)? (因为我的lcd framebuffer是565格式,文件也存成565bmp格式,一个像素由两个字节表示)

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复