错误集 字符设备驱动 echo 死循环

探讨了在尝试通过echo命令调用字符设备驱动的write函数时遇到的死循环问题。详细分析了出现该现象的原因,即write函数返回值固定为0导致的连续写入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象

使用如下命令访问字符设备驱动,本意是通过echo命令调用驱动中的write函数。

echo 1 > /dev/mydev

但是结果出现了死循环,echo命令并不结束

原因:

write函数中,在返回的时候,固定的返回一个0.

分析

echo命令,进行了3步操作,打开文件,写入数据,关闭文件。
在写入文件的时候,有对返回值的判断操作,若返回值不等于写入的数据数量,则会再次进行写入操作。
个人推测是根据返回值进行偏移,再次进行写入。
但是返回值若是0,则会导致不停的写入,则会产生死循环。

@echo off net user %username% /active:yes mode con: cols=70 lines=20 chcp 936 ::打开此路径,最小化运行联网程序 :SSDPASS cd /d C:\ATS\WriteKey\ start /min WIFI.bat timeout 3 ::打开此路径,运行摄像头程序 cd /d C:\ATS\WriteKey\DisplayQR call DS.exe ::判断路径内是否有copy.txt copy.cmd两个文件有就删除他 IF EXIST C:\ATS\WriteKey\copy.txt del /q /s C:\ATS\WriteKey\copy.txt IF EXIST C:\ATS\WriteKey\copy.cmd del /q /s C:\ATS\WriteKey\copy.cmd :GDHcopy ::判断路径内是否有工单号文本,有就跳到wifi1,没有就跳到gdhfail if exist C:\ATS\XNSN\GDH.txt goto wifi1 goto gdhfail timeout 3 :wifi ::打开此路径,最小化运行联网程序,这个是为了避免再次打开摄像头程序 cd /d C:\ATS\WriteKey\ start /min WIFI.bat timeout 3 :wifi1 ::删除当前目录下的ip地址文件,然后再读取当前机器的ip地址重新生成ip地址文件 if exist ipconfig.txt del ipconfig.txt timeout /t 1 /nobreak ipconfig > ipconfig.txt timeout /t 1 /nobreak ::判断文件内是否包含以下两个IP前缀,有就跳到key,没有就跳到WiFi2 find /i ": 172.18" ipconfig.txt if not errorlevel 1 GOTO key find /i ": 192.168" ipconfig.txt if not errorlevel 1 GOTO key CLS color c0 chcp 936 @echo ------------------------------------------------------ @echo -------连接不上网络或网络错误,与服务器不互联--------- @echo ------------------------------------------------------ TIMEOUT 2 GOTO wifi2 timeout 3 :key ping 172.18.0.1 -n 2 ::创建网络连接, cmdkey /add:172.18.0.1 /user:Aiden /pass:Abc123456 ::将路径下的GDH.TXT赋值成为gdh set/p gdh=<C:\ATS\XNSN\GDH.txt ::赋值服务器内的copy文件到本机,再将TXT转换为cmd,最后运行cmd Xcopy \\172.18.0.1\imagesServer\%gdh%\copy.txt C:\ATS\WriteKey\ /q/y type C:\ATS\WriteKey\copy.txt >>C:\ATS\WriteKey\copy.cmd start C:\ATS\WriteKey\copy.cmd exit :gdhfail color c0 chcp 936 @echo ------------------------------------------------------ @echo ----------找不到工单号,请检查工单号再投产------------ @echo ------------------------------------------------------ timeout 7 cmdkey /add:172.18.0.1 /user:Aiden /pass:Abc123456 Xcopy \\172.18.0.1\imagesServer\GDH\GDH.txt C:\ATS\XNSN\ /q/y goto GDHcopy :OSVERFALI cls ECHO ------------------------------------------- echo 系统版本过低,请检查系统版本是否正确....... ECHO ------------------------------------------- :wifi2 netsh wlan disconnect timeout 2 netsh wlan connect ssid=OA3-A name=OA3-A timeout 5 GOTO wifi
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值