当前位置: 首页 > news >正文

化妆品网站建设方案互联网公司排名 中国

化妆品网站建设方案,互联网公司排名 中国,怎么制作图片相册,中小学生在线做试卷的网站本人从0开始学习linux#xff0c;使用的是韦东山的教程#xff0c;在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。说实在的越看视频越感觉他讲的有点乱后续将以他的新版PDF手册为中心#xff0c;视频作为辅助理解的工具。参考手册为嵌入式Linux应用开发…本人从0开始学习linux使用的是韦东山的教程在跟着课程学习的情况下的所遇到的问题的总结,理论虽枯燥但是是基础。说实在的越看视频越感觉他讲的有点乱后续将以他的新版PDF手册为中心视频作为辅助理解的工具。参考手册为嵌入式Linux应用开发完全手册V5.3_IMX6ULL_Pro开发板。 摘要这节博客主要讲的是文本特性设置以及怎么用vs code调试去逐行理解代码明白其工作原理。文字内容方面不做过多的研究今后有需求再深入。 摘要关键词文本特性设置、vs code调试 本文详细介绍以下问题如果你遇到了以下问题看看我的方案能否解决。 hexdump /dev/input/event1ls /dev/input/* -l这段代码是一个 Linux 下获取输入设备信息的程序特别是用于读取 /dev/input/eventX 设备的信息通常用于获取键盘、鼠标等输入设备的类型和属性。我们逐行分析 #include linux/input.h #include sys/types.h #include sys/stat.h #include fcntl.h #include sys/ioctl.h #include stdio.h/* ./01_get_input_info /dev/input/event0 */ int main(int argc, char **argv) {int fd;int err;int len;int i;unsigned char byte;int bit;struct input_id id;unsigned int evbit[2];char *ev_names[] {EV_SYN ,EV_KEY ,EV_REL ,EV_ABS ,EV_MSC ,EV_SW ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,EV_LED ,EV_SND ,NULL ,EV_REP ,EV_FF ,EV_PWR ,};if (argc ! 2){printf(Usage: %s dev\n, argv[0]);return -1;}fd open(argv[1], O_RDWR);if (fd 0){printf(open %s err\n, argv[1]);return -1;}err ioctl(fd, EVIOCGID, id);if (err 0){printf(bustype 0x%x\n, id.bustype );printf(vendor 0x%x\n, id.vendor );printf(product 0x%x\n, id.product );printf(version 0x%x\n, id.version );}len ioctl(fd, EVIOCGBIT(0, sizeof(evbit)), evbit);if (len 0 len sizeof(evbit)){printf(support ev type: );for (i 0; i len; i){byte ((unsigned char *)evbit)[i];for (bit 0; bit 8; bit){if (byte (1bit)) {printf(%s , ev_names[i*8 bit]);}}}printf(\n);}return 0; } #include linux/input.h包含了输入设备相关的定义主要是 input_id 结构体和 EV_* 常量后者定义了输入设备支持的事件类型例如按键、相对移动等 #include sys/types.h 和 #include sys/stat.h包含了文件系统和文件类型相关的结构体和常量 #include fcntl.h提供了文件操作的常量和函数例如打开文件open()但是如上图所示可以看到其实有3个头文件需要包括。 #include sys/ioctl.h用于进行设备控制的输入/输出控制ioctl操作 #include stdio.h标准输入输出库用于打印信息到控制台 int fd;int err;int len;int i;unsigned char byte;int bit;struct input_id id;unsigned int evbit[2];char *ev_names[] {EV_SYN ,EV_KEY ,EV_REL ,EV_ABS ,EV_MSC ,EV_SW ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,NULL ,EV_LED ,EV_SND ,NULL ,EV_REP ,EV_FF ,EV_PWR ,};fd文件描述符用于操作设备文件。 err用于存储函数调用返回的错误码。 len保存返回的设备信息长度。 i用于循环遍历。 byte 和 bit用于按位操作输入事件类型evbit 数组。 id存储输入设备的标识信息类型为 struct input_id它包含 bustype, vendor, product, 和 version 等字段。 evbit[2]用于存储设备支持的事件类型的位图。 ev_names[]保存了输入事件类型对应的字符串索引和位图值一一对应 if (argc ! 2){printf(Usage: %s dev\n, argv[0]);return -1;} 该部分检查命令行参数的个数如果不等于 2即没有提供设备路径就输出使用提示并退出。 fd open(argv[1], O_RDWR);if (fd 0){printf(open %s err\n, argv[1]);return -1;}使用 open() 打开指定的设备文件如 /dev/input/event0并以可读写模式打开。如果打开失败fd 0打印错误信息并退出。 err ioctl(fd, EVIOCGID, id);if (err 0){printf(bustype 0x%x\n, id.bustype );printf(vendor 0x%x\n, id.vendor );printf(product 0x%x\n, id.product );printf(version 0x%x\n, id.version );} 使用 ioctl() 函数发起 EVIOCGID 请求获取设备的标识信息如总线类型、厂商 ID、产品 ID 和版本号。如果获取成功则打印出这些信息。 len ioctl(fd, EVIOCGBIT(0, sizeof(evbit)), evbit);if (len 0 len sizeof(evbit)){printf(support ev type: );for (i 0; i len; i){byte ((unsigned char *)evbit)[i];for (bit 0; bit 8; bit){if (byte (1bit)) {printf(%s , ev_names[i*8 bit]);}}}printf(\n);} 使用 ioctl() 获取设备支持的事件类型。EVIOCGBIT() 是一个宏获取指定事件类型0 表示主事件类型的位图返回长度存入 len并将位图数据保存在 evbit 数组中。 如果 len 大于 0 且小于等于 evbit 的大小表示获取到有效数据。程序会遍历 evbit 数组按位检查每一位是否为 1如果为 1就输出对应的事件类型名称如 EV_KEY, EV_ABS 等。 该程序的功能是打开一个输入设备文件如 /dev/input/event0通过 ioctl 获取设备的标识信息和支持的事件类型并将这些信息输出到控制台。这个程序对于调试和开发输入设备驱动有帮助可以帮助开发者了解设备支持的事件类型和硬件信息。 2.signal函数 参考手册P218页可以看到IO控制信号使用的是此函数。 typedef void (*sighandler_t)(int); sighandler_t signal(int signum, sighandler_t handler);本人认为它最关键的就是这两行代码。 typedef void (*sighandler_t)(int);这行代码是重定义了一个viod类型的指针函数接受一个int类型的参数typedef 是用来定义类型别名的关键字。 sighandler_t signal(int signum, sighandler_t handler);则是将signal函数指定为上述函数类型 signal() 函数的作用是设置信号处理函数。当特定的信号比如 SIGINT发生时操作系统会调用这个处理函数。这个函数的返回类型是 sighandler_t即指向信号处理函数的指针。 handler是一个函数指针类型是 sighandler_t它指向一个信号处理函数。当信号发生时该函数将被调用。这个函数的返回类型是 void并接受一个 int 类型的参数通常是信号编号。 本质上是用了两次接受一个 int 类型的参数并返回 void类型的函数等效函数如下所示。 void (*signal(int signum, void (*handler)(int)))(int);到此我就有一个疑问参数声明为什么要括在外面呢不能写在括号里面吗 主要原因是在 C 语言中函数指针的声明语法有点特殊它通常会使用括号来明确指针的优先级。 export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin cd test arm-buildroot-linux-gnueabihf-gcc -o 05_input_read_fasync 05_input_read_fasync.c adb push 05_input_read_fasync /root./05_input_read_fasync /dev/input/event0
http://www.hkea.cn/news/14577075/

相关文章:

  • 做门户网站用什么模板wordpress img相对路径
  • 网站开发技术人员怎么接单怎样做站长建网站
  • 有关网站建设的视频做社交网站的预算
  • 云南省网站建设收费调查报告作图网站都有哪些
  • 佛山网站制作网站wordpress类似娱乐网主题
  • 黄山网站推广公司百度资源分享网页
  • 适合前端做项目的网站做网站都需要什么人团
  • 西安网站建设发布商丘seo推广
  • 制作个人网站素材工信部备案信息查询系统
  • wordpress迁移跳转原网站有没有免费的网站空间
  • 如何 html5 网站模板楼盘信息在哪里能查到
  • 广州建设网站是什么关系百度seo关键词优化公司
  • 哪个网站做五金冲压的wordpress上线需要改什么
  • 电商网站建设工具设计素材网站黄金烤肠
  • 国内做轮胎网站哪家好抚顺您做煮火锅网站
  • 58网站建设58xiamen一个网站可以做多少弹窗广告
  • 莆田建设项目环境网站做个网页需要多少钱?
  • cad dwt模板做网站模版网站结构优化的优化包括
  • 网站怎么做有创意wordpress更改固定链接打不开
  • wordpress 做音乐网站开工作室做网站怎样找资源
  • 深圳做外贸网站哪家好网站做ddns解析
  • 网站建设有微信的关系每个网站都有服务器吗
  • 电影网站怎么建设六盘水市城乡建设局网站
  • 买网站账号做推广用vs2013做网站教程
  • 外贸网站域名用境内还是境外有哪些做设计交易网站
  • 苏州营销型网站建设推广哪家网站建设公司
  • 网站促销广告淘宝客网站管理
  • 烟台食品公司中企动力提供网站建设国外域名 网站备案
  • 门户网站开发要求网络商城是什么意思
  • 备案 网站建设方案书网页首页设计模板免费