linux 重新加载驱动程序,在linux中模拟设备驱动程序崩溃。让python重新加载i
你的代码现在崩溃的原因是,当驱动程序崩溃时,代表你的硬件的设备专用文件就会消失。您的代码仍然具有这些设备的打开文件句柄。根据您的代码在幕后到底在做什么,它可能会尝试向一个现在无效的文件句柄发出IOCTL,这个用例通常不会被库代码很好地处理,因为它应该只发生在这样一个事件中,带有某种用户地码无法处理的内核接地错误。在
如果摄像头停止工作,处理它与处理司机撞车完全不同。一个有故障的相机不应该让一个(正确书写的)驱动程序瘫痪。如果驱动程序出现故障,那么您的用户地代码将无法对此执行太多操作。也不需要。如果司机撞车了,那是司机写手的问题,而不是你的问题。如果你有一个司机经常撞到你,你想试着去处理它,那么我会用另一个司机,或者试着修理你正在使用的那个。再多的应用程序代码也无法修复有故障的驱动程序。在
别忘了你的代码并不是唯一使用驱动程序的代码。内部内核进程或其他应用程序也可能正在使用该驱动程序。如果在您拔出驱动程序时有其他东西在使用它,您可能会导致其他代码挂起(超出您的控制范围),并可能导致整个系统崩溃。在
现在,如果你的网络摄像头硬件有问题,驱动程序应该优雅地给你一条消息或某种错误,你的应用程序代码可以检测到并采取行动,同时做自己的工作,使摄像机再次工作。失败的硬件不应该给应用程序代码带来负担;让驱动程序完成它的工作,如果可能的话,它会让摄像头重新联机。如果无法这样做,那么要么相机处于不可恢复状态,要么驱动程序有改进的空间(如果是这样的话,向驱动程序的开发人员提供在硬件上测试他们的代码的机会,有时可以快速获得对设备的驱动程序支持)。在
我不想在驱动程序运行时撕掉它,而是集中精力编写代码来处理驱动程序可以为您的设备返回的所有可能的错误状态。在
linux 重新加载驱动程序,在linux中模拟设备驱动程序崩溃。让python重新加载i相关推荐
- chrome 网页重新加载_在Chrome中为各个网页设置自定义重新加载时间
chrome 网页重新加载 Do you have a webpage that needs to be reloaded every so often or perhaps you have mul ...
- jsp ajax加载html页面,Ajax中的load()方法实现指定区域加载或刷新html与jsp
一.Jquery中的Ajax Jquery对Ajax操作进行了封装,在Jquery中: 最底层的是$.ajsx(), 第二层是load().$.get().$.post() 第三层是$.getJSON ...
- axios vue 加载效果动画_vue中使用axios拦截器实现数据加载之前的loading动画显示 @劉䔳...
首先新建一个 loading.vue组件,写loading动画效果 .loader { width: 100%; height: 100%; display: flex; align-items: c ...
- OpenCV将GIS数据加载到OpenCV容器中的实例(附完整代码)
OpenCV将GIS数据加载到OpenCV容器中的实例 OpenCV将GIS数据加载到OpenCV容器中的实例 OpenCV将GIS数据加载到OpenCV容器中的实例 #include "o ...
- Linux常用指令(幻影快递Linux小组)
Linux新手管理员指南(中文版) Linux Newbie Administrator Guide (Simplified Chinese Version) 幻影快递Linux小组(SLT-Shad ...
- linux u 驱动程序,在uClinux中增加自己的设备驱动程序
驱动程序的使用可以按照两种方式编译,一种是静态编译进内核,另一种是编译成模块以供动态加载.由于 uClinux不支持模块动态加载,而且嵌入式Linux不能够象桌面Linux那样灵活的使用insmod/ ...
- 嵌入式linux系统中设备驱动程序
嵌入式linux系统中设备驱动程序是内核的一部分,完成对设备初始.读写操作和控制等功能.驱动程序隐藏了 硬件设备的具体细节,对不同的设备提供一致的接口,这些接口通过file_Operation结构来定 ...
- linux path环境变量检索目录,Linux下动态链接库加载路径及搜索路径问题
引子 近日,服务器迁移后,偷懒未重新编译nginx的,直接./nginx启动,结果遇到如下问题: "error while loading shared libraries" 这是 ...
- Linux内核深入理解中断和异常(2):初步中断处理-中断加载
Linux内核深入理解中断和异常(2):初步中断处理-中断加载 rtoax 2021年3月 1. 总体概览 关于idt_table结构的填充,在5.10.13中流程为: idt_setup_early ...
最新文章
- 当对象或对象属性为空时,如何安全给对象或对象属性添加默认值
- 图灵2010.06书讯
- Django之静态文件
- [vue-cli]vue-cli3插件有写过吗?怎么写一个代码生成插件?
- mysql语句编码_使用SQL语句操作MYSQL字符编码
- Java线程池execute()方法源码解析
- IDEA2018全局搜索中搜索jar包/lib
- vue 点击div 获取位置_Vue中div contenteditable 的光标定位方法
- tolua unity 报错_Unity Editor + tolua 在 Linux 下的 runtime 问题
- 萤石开放平台 .net c# sdk
- 网络流量分析系统的价值
- App启动页倒计时圆形并且跳过功能实现
- C语言计算日期间隔天数的经典算法解析
- AI挖掘优质淘宝买家秀 再也不用担心辣眼睛了
- MFC 加载并显示图片
- 关于滑轮组的计算机知识点,【中考备考】初三物理常考知识点讲解:滑轮
- 按键精灵html代码,按键精灵代码post和get
- 企业微信推送消息延迟_微信接收消息总是延迟?没有提醒,这3个功能赶紧设置一下...
- RocketMQ事务消息
- 第四周铁人战队学习总结
热门文章
- Bowtie下载安装
- c语言和画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
- c语言main的作用是什么意思,c语言intmain()是什么意思
- numpy 数组 维度 大小 形状
- 二十四、死锁的处理策略---检测和解除
- 膨胀卷积--Multi-scale context aggregation by dilated convolutions
- python计算文件md5值_用python 正确计算大文件md5 值
- 微型计算机技术 第三章,微型计算机技术第三章部分答案概要.docx
- 小松卡特彼勒无人驾驶_运输量突破20亿吨,卡特彼勒无人驾驶矿卡迎里程碑时刻...
- 【ZooKeeper】配置文件详解