使用cat命令时拔掉U盘后控制台不停打印文件信息

一、问题现象

1、使用cat命令读取U盘文件并打印读到的数据时突然拔掉U盘,正常会因为读取失败而停止输出,实际上则不断的打印最后读到的一串数据。
正常读取到的文件信息

二、问题原因

1、cat命令实质调用的核心函数是dfs_file_read,这个函数返回一个长度值,如果返回值小于0说明发生错误,但是接收这个返回值的却是一个uint32_t变量,导致出错时无法识别错误,反而识别成读取到长度非常大的数据,所以在不断打印。
在这里插入图片描述

三、解决方案

1、将length改成int类型即可

在这里插入图片描述

(完)