<分区>
我是 C 和 Linux 的新手。我正在尝试使用 read()
系统调用从 串行端口 读取一些数据,它工作正常。问题是即使我在代码运行时拔下串行电缆,read()
也不返回负值。请帮助
如果场景不清楚,请随时询问。感谢您的宝贵时间
编辑: 当我拔下电缆时,它会返回一个零。
char cBuff[100];
buffptr = cBuff;
while (( nbytes = read(fd, buffptr, cBuff + sizeof(cBuff) - buffptr - 1)) > 0)
{
//Do something
}
if(nbytes < 0 )
{
perror("Serial Read Thread ERROR:");
}
else if(nbytes >= 0 )
{
//Do something
}