linux无限刷屏代码,linux下如何实现简单刷屏

linux无限刷屏代码,linux下如何实现简单刷屏今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。代码如下:#include#include#include#include#include#include#include#includeintmain(intargc,char*argv[]){intfbfd=0;structfb_var_screeninfovinfo;struct…

大家好,又见面了,我是你们的朋友全栈君。

今天为了测试我的LCD有没有坏点写了一个简单的刷屏程序,效果还不错,分析给大家。代码如下:

#include

#include

#include

#include

#include

#include

#include

#include

int main(int argc,char *argv[])

{

int fbfd = 0;

struct fb_var_screeninfo vinfo;

struct fb_fix_screeninfo finfo;

long int screensize = 0;

char *fbp = 0;

char inbuf[240*320*2];

int i = 0;

/*open /dev/fb0 */

fbfd = open(“/dev/fb0”,O_RDWR);

if(fbfd<=0)

{

printf(“Error:cannot open framebuffer devices./n”);

return -1;

}

printf(“The framebuffer devices was opened successfully./n”);

/*get framebuffer infomation*/

if(ioctl(fbfd,FBIOGET_FSCREENINFO,&finfo))

{

printf(“Error: reanding fixed informatin./n”);

return -1;

}

if(ioctl(fbfd,FBIOGET_VSCREENINFO,&vinfo))

{

printf(“Error: reanding var informatin./n”);

return -1;

}

/*set screensiez*/

screensize = vinfo.xres*vinfo.yres*vinfo.bits_per_pixel/8;

/*mmap*/

fbp = (char*)mmap(0,screensize,PROT_READ|PROT_WRITE,MAP_SHARED,fbfd,0);

if((int)fbp == -1)

{

printf(“Error: failed to map framebuffer device to memory./n”);

return -4;

}

printf(” The framebuffer device was mapped to memory sucessfully./n”);

memcpy(inbuf,fbp,screensize);//保存刷屏前显存中的数据

for(i = 0;i<0xff;i++)

{

memset(fbp,i,screensize);

sleep(1);

}

memcpy(fbp,inbuf,screensize);//将保存的显存数据复原回去

munmap(fbp,screensize);

printf(“The framebuffer device was munmaped successfully./n”);

close(fbfd);

printf(“The framebuffer device was closed successfully./n”);

return 0;

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/136720.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月4日 下午10:00
下一篇 2022年5月4日 下午10:00


相关推荐

  • 结构体字节对齐

    结构体字节对齐先说个题外话 早些年我学 C 程序设计时 写过一段解释硬盘 MBR 分区表的代码 对着磁盘编辑器怎么看 怎么对 可一执行 结果就错了 当时调试也不太会 又根本没听过结构体对齐这一说 所以 问题解决不了 好几天都十分纠结 后来万般无奈请教一个朋友 才获悉可能是结构体对齐的事 一查 一改 果真如此 nbsp nbsp 问题是解决了 可网上的资料多数只提到内存对齐是如何做

    2026年3月17日
    2
  • 安卓和ios之间文件互传_安卓转移到iphone12

    安卓和ios之间文件互传_安卓转移到iphone12如果之前是安卓用户,在购买iphone12新款手机之后,如何从安卓转移数据到ios?可以通过苹果官方提供的“转移到ios”应用,将安卓手机中的内容进行转移,感兴趣的朋友快来看看吧!如何将数据从安卓设备转移到iphone12可转移的内容包括:通讯录、信息历史记录、相机照片和视频、web书签、邮件帐户和日历。转移完成之后,您可以从appstore下载任何匹配的免费app。使用前准备…

    2026年1月20日
    3
  • linux环境下将某个目录下的文件复制或者移动到另一个目录下[通俗易懂]

    linux环境下将某个目录下的文件复制或者移动到另一个目录下[通俗易懂]1、将一个文件夹下的所有内容复制到另一个文件夹下cp-r/home/packageA/*/home/cp/packageB/或cp-r/home/packageA/./home/cp/packageB/这两种方法效果是一样的。2、将一个文件夹复制到另一个文件夹下cp-r/home/packageA/home/packageB运行命令之后packageB文件夹下就有packageA文件夹了。3、删除一个文件夹及其下面的所有文件rm-r/home/packag

    2022年8月23日
    7
  • fflush与fsync

    fflush与fsync区别:1、头文件不同fflush包含在头文件中;fsync包含在头文件中;2、参数不同fflush函数原型是:intfflush(FILE*fp);   即,fflush的参数时文件指针。fsync函数原型是:intfsync(intfd);   即,fsync的参数时文件描述符。2、应用层次不同fflush函数应用于用户层,将C语言函数库中的函数提

    2022年5月27日
    105
  • centos7 输入 ifconfig 不显示 ip 地址 连接不上的解决方法(亲测成功)「建议收藏」

    centos7 输入 ifconfig 不显示 ip 地址 连接不上的解决方法(亲测成功)「建议收藏」最近又把自己的虚拟机打开了玩玩集群,遇到一个小问题,我发现虚拟机的内存不够了,就把虚拟机关机加大了内存,谁知道开机后,ifconfig或者ipaddr显示没有ip地址,只显示一个lo,没有ens33,没有ip地址就没法用xshell连接,很蛋疼,网上也有很多解决方案,但都写的乱七八糟的,而且很多都不好使,今天就来介绍一下我最后解决的方法.我说一下我的虚拟机的情况,我三台虚拟机,之前是mas………

    2025年8月8日
    8
  • 蒲式耳,磅换算成公斤和吨

    蒲式耳,磅换算成公斤和吨一个小东西,给自己留作备份用的<!DOCTYPEhtml><htmllang="en"><head><metacharset

    2022年8月3日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号