范例 请参考open().
1.Write函数
用法:
#include <unistd.h>
ssize_t write(int fd, const void *buf, size_t count);
参数:
fd:要进行写操作的文件描述词。
buf:需要输出的缓冲区
count:最大输出字节计数
使用时候偶然发现,如果设置打开fb=open("/dev/fb0",O_RDONLY)之类的缓存文件,并且再打开fb_tupian=open("tu.bin",O_RDONLY);并且将fb_tupian使用read(fb_tupian,buf,size);读取之后,这个buf存放的就是tu.bin的数据
好了,问题出现了,当使用write(fb,buf,size)写第一张图片的时候还是正确的,但是当打开例如:tu001.bin的buf001,发现,不能写入framebuffer的fb文件描述符下,因为由于前面写的tu.bin的数据已经导致缓存地址溢出,因此,后面的图片再次使用write函数写入到fb的时候,fb缓存的地址没有清到缓存的首地址,因此溢出了LCD屏幕范围。
解决的方法是:需要将该文件close掉,再次打开,才能进行重写。
2.fread函数和fwrite函数
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。