|
请教我把一个文件映射到内存:
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格式,一个像素由两个字节表示)
|
|