我们有一个Linux嵌入式项目,我们关注性能。
串行端口异步输入示例:
http://www.faqs.org/docs/Linux-HOWTO/Serial-Programming-HOWTO.html#AEN105
我们想要什么就做什么。
但是主管工程师反对
循环睡眠呼叫。他希望程序等待信号来执行响应处理代码。
我尝试将代码从main()移动到信号函数内部,即:

void signal_handler_IO (int status)
{
    // I moved my code here
}

结果不起作用,在该函数中写入串行端口的操作很快就会失败,程序完全没有响应。
为什么?
有没有人能为一个串行端口提供一个信号驱动I/O的在线示例?我一直在仔细研读Kerrisk的“Linux编程接口”一书的第63章,并疯狂地用谷歌搜索。我开始认为也许没有更好的方法来做最初的例子。
提前谢谢你,
伯特

最佳答案

如果您担心在没有可用输入的情况下从usleep()调用中定期醒来,只需将usleep()调用替换为pause(),它将暂停您的进程,直到SIGIO发生。

关于linux - 串口异步输入功能的局限性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4898518/

10-12 00:43
查看更多