在慢速系统调用中处理SIGINT

2024-05-14 00:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python很陌生,如果这个问题很基本,请原谅我。在

我正在尝试处理键盘中断,同时使用select模块从套接字接收数据。所以,我有一个选择。选择()函数调用以等待来自套接字的数据,然后将其输出到控制台。在

当按下CTRL\u C时,似乎有时我会得到一个选择.错误,有时异常.IOError例外情况。对于这两个异常,相应的错误代码都是4。在

在调用堆栈中,有一些代码处理键盘中断异常,所以当我在接受套接字连接的函数中得到SIGINT时,我只想重新引发KeyboardInterrupt异常。我还想捕捉与连接相关的异常。在

检查异常的错误代码是否安全,如果是4,则引发键盘中断?这会影响我捕捉连接相关异常的能力吗?有没有关于错误代码的好资源?在

谢谢!在


Tags: 模块数据代码堆栈错误键盘select例外情况
1条回答
网友
1楼 · 发布于 2024-05-14 00:36:33

请改用errno.EINTR。它是安全的。在

>>> import errno
>>> errno.EINTR
4

但是,这不会告诉您是哪个信号中断了系统调用,只会告诉您哪个信号中断了系统调用。在

man 2选择

^{pr2}$

相关问题 更多 >