本文介绍了如何避免睡眠通话中断,由于在Linux中的信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在Linux中使用实时信号被通知新数据的串行端口的到来。不幸的是这会导致睡眠时调用有信号被中断。
有谁知道的方式,以避免这种行为。
I'm using a real time signal in Linux to be notified of the arrival of new data in a serial port. Unfortunately this causes sleep calls to be interrupted when there is signal.Does anybody know of a way to avoid this behavior.
编辑:
我试图用一个普通信号(SIGUSR1),但我不断收到相同的行为。
I tried using a regular signal (SIGUSR1) but I keep getting the same behavior.
谢谢,
若昂
推荐答案
从手册页了nanosleep:
From the nanosleep manpage:
了nanosleep延迟方案的用于至少在* REQ指定的时间执行。如果信号已交付过程中的作用可以提早返回。在这种情况下,返回-1,设置errno为EINTR,并写入到结构指向雷姆,除非REM是NULL的剩余时间。 * REM的值可以被用来再次调用了nanosleep并完成指定的暂停。
这篇关于如何避免睡眠通话中断,由于在Linux中的信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!