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

211 阅读1分钟

现象

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

echo 1 > /dev/mydev

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

原因:

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

分析

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