read函数读取时报错:Resource temporarily unavailable

串口接收数据,会收到包的前边部分,然后报错:Resource temporarily unavailable,但是,接着仍然会收到报的哦后边部分,中间丢失了一部分。

原因:可能是非阻塞模式下使用了阻塞操作;
调用open函数时,使用了非阻塞模式(O_NONBLOCK),却直接用read函数读取;
而read默认为阻塞操作,所以导致报错。

解决:去掉串口设备open函数中的O_NONBLOCK后正常。

posted on 2021-11-09 13:40  坚强地活着  阅读(1719)  评论(0编辑  收藏  举报

导航