现象 使用如下命令访问字符设备驱动,本意是通过echo命令调用驱动中的write函数。 echo 1 > /dev/mydev 但是结果出现了死循环,echo命令并不结束。 原因: write函数中,在返回的时候,固定的返回一个0. 分析 echo命令,进行了3步操作,打开文件,写入数据,关闭文件。 在写入文件的时候,有对返回值的判断操作,若返回值不等于写入的数据数量,则会再次进行写入操作。 个人推测是根据返回值进行偏移,再次进行写入。 但是返回值若是0,则会导致不停的写入,则会产生死循环。