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

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

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

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

原文地址:https://www.cnblogs.com/gaotaozhaolei/p/15528487.html