gpt4 book ai didi

c - 信号中断 read()

转载 作者:IT王子 更新时间:2023-10-29 00:57:39 25 4
gpt4 key购买 nike

我有一个线程不断地读取串行端口的数据。如果主程序收到 SIGINT,它会在串行端口线程上调用 g_thread_join()。

但是,由于读取被阻塞,串行端口线程不会返回并且程序会停止,直到我在串行线上获得一个字节然后它可以退出。

有没有办法将 SIGINT 传递给 read(),以便在主线程需要时强制返回?

最佳答案

要让 read() 返回 EINTR,请在 的成员 sa_flags 中取消设置 SA_RESTART struct sigaction 传递到对 sigaction() 的调用中在为 SIGINT 安装信号处理程序时。


另一种方法是完全避免阻塞 read()。请查看此问题的答案:how to avoid blocking from the read function?

关于c - 信号中断 read(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com