Linux下阻塞IO驱动实验实例二的测试

 一.  简介

前面一篇文章实现了驱动代码,以实现应用程序阻塞式访问设备,以一种可以被信号打断的驱动实现方式。文章地址如下:

Linux下阻塞IO驱动实验实例二-CSDN博客

本文对该驱动模块进行测试。测试按键功能是否可用,按键进程的CPU占用率是否为 0,按键进程是否可以被杀死(即被信号打断)。

二.  Linux下阻塞IO驱动实验实例二的测试

1.  准备应用测试程序

测试代码还使用前面 按键中断实验中使用的测试程序,irqApp.c文件代码实现如下:

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>/*
*测试按键是否按下
* 运行命令: ./irqpp /dev/key_irq
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736641.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

边界网关协议,Border Gateway Protocol 边界网关协议

边界网关协议&#xff0c;是不同自治系统AS&#xff0c;的路由器之间交换路由信息的协议&#xff0c;是一种外部网关协议。边界网关协议BGP&#xff0c;常用于互联网的网关之间。 内部网关协议主要是设法使得数据包在一个AS中&#xff0c;尽可能有效地从源站传送到目的站。 在…

【联邦学习综述:概念、技术】

出自——联邦学习综述&#xff1a;概念、技术、应用与挑战。梁天恺 1*&#xff0c;曾 碧 2&#xff0c;陈 光 1 从两个方面保护隐私数据 硬件层面 可 信 执 行 环 境 &#xff08;Trusted Execution Environment&#xff0c;TEE&#xff09;边 缘 计 算&#xff08;Edge Com…

Error attempting to get column ‘add_time‘ from result set

使用Mybatis-plus 重构项目&#xff0c;报错&#xff1a; Error attempting to get column add_time from result set 当前采用技术 1、数据库字段为 datetime 类型 2、使用了mybatis-plus 框架 3、实体类使用了 LocalDateTime 原因参考&#xff1a; Error attempting to ge…

天软特色因子看板(2024.3 第3期)

该因子看板跟踪天软特色因子A08006近一月日度买卖压力2)&#xff0c;该因子为近一个月个股每日的相对价格位置&#xff0c;用以刻画股票所受买卖压力&#xff0c;取作 个于0~1间&#xff0c;指标值越大&#xff0c;反映股票在价格相对高位停留的时间越长&#xff0c;所面临的买…

编辑器的一些碎碎念

做编辑器将近2年时间&#xff0c;越深入发现坑越多&#xff0c;社区中也没有比较好的资料&#xff0c;基本都是非常浅的资料&#xff0c;比如如何接入、API介绍之类的。 前端编辑器开源的非常多&#xff0c;至少有10 个&#xff0c;不过目前知名的主要有Slate、ProseMirror、Qu…

SSM整合项目(Vue3 + Element - Plus 创建项目基础页面)

文章目录 1.配置Vue启动端口1.修改vue.config.js2.启动 2.安装Element Plus命令行输入 npm install element-plus --save 3.修改Vue3默认样式并自定义一个组件1.修改App.vue1.删除原有结构2.启动项目查看 2.修改HomeView.vue3.删除HelloWorld.vue组件4.创建一个组件 src/compon…

PostgreSQL数据优化——死元组清理

最近遇到一个奇怪的问题&#xff0c;一个百万级的PostgreSQL表&#xff0c;只有3个索引。但是每次执行insert或update语句就要几百ms以上。经过查询发现是一个狠简单的问题&#xff0c;数据库表死元组太多了&#xff0c;需要手动清理。 在 PG 中&#xff0c;update/delete 语句…

SQL: 触发器/存储过程/游标的操作

目录 触发器存储过程创建存储过程修改存储过程删除存储过程执行存储过程 游标待续、更新中 触发器 待更新存储过程 定义 是一组TSQL语句的预编译集合&#xff0c;能实现特定的功能 是一种独立的数据库对象&#xff0c;在服务器上创建和运行 类似于编程语言中的过程或函数分类…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

开源的python 游戏开发库介绍

本文将为您详细讲解开源的 Python 游戏开发库&#xff0c;以及它们的特点、区别和应用场景。Python 社区提供了多种游戏开发库&#xff0c;这些库可以帮助您在 Python 应用程序中实现游戏逻辑、图形渲染、声音处理等功能。 1. Pygame 特点 - 基于 Python 的游戏开发库。…

算法(6种思想、7种查找)、与数据结构(数组/链表/栈与队列/树)整理总结

算法 除了这里提到的算法思想和查找算法&#xff0c;算法还有别的类型&#xff1a; 排序算法&#xff1a; 对一组元素进行排序的算法。常见的排序算法包括冒泡排序、快速排序、归并排序等。 图算法&#xff1a; 解决图结构相关问题的算法&#xff0c;例如最短路径问题、最小…

Printer Queue(UVA 12100)

网址如下&#xff1a; Printer Queue - UVA 12100 - Virtual Judge (vjudge.net) &#xff08;第三方网站&#xff09; 很简单的一道队列题&#xff0c;模拟一下就可以了 但是我觉得我可以优化一下算法 然而要上高数了 代码如下&#xff1a; #include<queue> #inclu…

《操作系统》的同步、通信与死锁

基础概念 同步 进程互斥&#xff1a;若干进程因相互争夺独占型资源而产生的竞争关系&#xff0c;具有唯一排它性&#xff0c;互斥无法限制访问者对资源的访问顺序&#xff0c;即访问是无序的。 进程同步&#xff1a;我们把异步环境下的一组并发进程因直接制约而互相发送消息…

二叉树的中序遍历

题目描述 现有一棵n个结点的二叉树&#xff08;结点编号为从0到n-1&#xff0c;根结点为0号结点&#xff09;&#xff0c;求这棵二叉树的中序遍历序列。 输入描述 第一行一个整数n​​​​​​​​&#xff08;1≤n≤50​​​​​​​​​​​&#xff09;&#xff0c;表示二…

Docker容器Docker桌面配置镜像加速

打开Docker Desktop应用程序&#xff0c;点击设置 具体配置如下&#xff1a; {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"features": {"buil…

编译Linux内核并修改版本号后缀为学号-Ubuntu22.04中编译安装Linux内核6.7.8

前言&#xff1a;实验课要求下载最新版本Linux内核并修改版本号&#xff0c;本人在Vmware中Ubuntu22.04中实现&#xff0c;花三天时间查阅大量网站资料。记录一下误打误撞成功的过程&#xff0c;希望对你们有帮助。 目录 一、常规安装步骤&猜想Ubuntu与gcc版本过低 二、安…

202003 青少年软件编程(Scratch)等级考试试卷(一级)

202003 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;一级&#xff09; 第1题&#xff1a;【 单选题】 在Scratch中&#xff0c;以下哪个区域可以展示编程效果&#xff1f; A:代码区 B:舞台区 C:角色区 D:积木区 【正确答案】: B 【试题解析】…

基于PySide2实现调用本地摄像头抓拍并保存照片(Python版本)

因为横向课题需要&#xff0c;这是其中的一个小小的功能&#xff0c;单独拎出来作为一个小demo&#xff0c;方便后续学习使用 项目实现功能&#xff1a; 点击open按钮&#xff0c;摄像头开启&#xff0c;实时捕获周围图像并显示 点击capture按钮&#xff0c;保存摄像头照片&am…

日期工具的逻辑与数据请求函数的完善

src\libs\utils.js 获取当前日期格式 /*** 获取当前日期格式* param {*} field * returns */ function getNowDate(field) {const date new Date()let year date.getFullYear(),month date.getMonth() 1,day date.getDate()switch (field) {case day:return ${year}-${mo…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…