
您找不到此原因的原因是,没有专门允许它的文档化接口。但是,有一个技巧可以使您做到这一点。在打开伪终端主机(假定为文件描述符
ptm)之后,打开并立即关闭从机端:
close(open(ptsname(ptm), O_RDWR | O_NOCTTY));
这将在tty主机上设置HUP标志。现在,您可以定期轮询HUP标志
poll()(例如,每当数据来自数据源时):
struct pollfd pfd = { .fd = ptm, .events = POLLHUP };poll(&pfd, 1, 10 );if (!(pfd.revents & POLLHUP)){ }如果阅读器消失了,
POLLHUP将再次设置。
在您的情况下,您甚至可能甚至不需要记住从一个循环到下一个循环,给定的pty是否具有读取器-
只需阻塞
read()数据源,然后在数据可用时,同时同步
poll()所有主tty并发送数据发送到任何未
POLLHUP设置的位置。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)