|
|
1
1
这听起来像是一个简单的循环,读写就足够了。如果你想要更多的控制(比如在没有输入的x秒后写一个keep-alive),使用
使用
启动minicom(或任何其他终端程序)并查看它们如何使事情正常工作,如果你被卡住了。和往常一样,看
|
|
|
2
0
一般来说,有几种方法可以解决这个问题。最佳选择可能取决于您在读取串行端口时查看的数据类型以及如何处理该数据中的错误。 第一种方法是打开串行文件阻止IO,然后执行以下操作:
虽然我没有做任何错误处理。 如果你想在串行端口等待回复时超时,那么这会改变很多事情。您应该研究使用select、pselect、poll、ppoll或epoll系列系统调用。这些允许您的程序阻塞(睡眠),直到有数据准备好读取。然后,您可以循环进行投票并阅读,直到您完成了您的答案或时间用完。 另一种选择是尝试使用sigio,但我不推荐这样做。要正确处理这个问题并不容易,调试也很困难。 此外,您可以使用sigalrm将您从读取调用中删除,以作为超时。 如果您试图使用stdio输入和输出例程,那么这就更困难了。您将陷入像第一个方法这样的困境,而无法询问准备了多少数据。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
|
user2138149 · 双栈网络服务器无法按预期处理ipv4请求 1 年前 |
|
|
Marco · PyCharm Linux系统文件上os.stat异常 1 年前 |