是否可以打开串行设备(例如/dev/ttyS0
),并通过select
/poll
/等方式或信号在握手线(例如CTS
/RTS
或DSR
/DTR
)更改时得到通知?我知道在硬件层面上,UART 会有一个中断来告诉内核它已经发生了变化,但我能在用户空间中被通知吗?
编辑:我知道TIOCMIWAIT
,但该ioctl
调用会一直阻塞,直到状态行发生更改。相反,我希望保持通常的处理,并在更改时通过poll
或类似方法得到通知,以及其他事件。
是否可以打开串行设备(例如/dev/ttyS0
),并通过select
/poll
/等方式或信号在握手线(例如CTS
/RTS
或DSR
/DTR
)更改时得到通知?我知道在硬件层面上,UART 会有一个中断来告诉内核它已经发生了变化,但我能在用户空间中被通知吗?
编辑:我知道TIOCMIWAIT
,但该ioctl
调用会一直阻塞,直到状态行发生更改。相反,我希望保持通常的处理,并在更改时通过poll
或类似方法得到通知,以及其他事件。
TIOCMIWAIT
,它会阻塞直到状态位改变。我希望通过选择/轮询唤醒或信号异步地被通知。 - LeoNerdioctl TIOCMIWAIT
来实现你想要的吗? - James Waldby - jwpat7