0

我正在阅读 Linux 系统编程。

在介绍该system(command)功能时,该书指出在执行期间command,SIGINT被忽略。

因此,假设这os.system只是底层系统函数的包装,我尝试以下操作:

循环.py

while True:
      print 'You should not be able to CTRL+C me ;p'

测试循环.py

   import os
   os.system("python loop.py")

现在我正在执行loop.pysystem我希望 SIGINT 被忽略,但是当我在正在运行的程序上使用 CTRL+C 时,它仍然会被杀死。

知道为什么os.systemsystem()功能不同吗?

4

1 回答 1

3

SIGINT被调用的应用程序忽略system(只要system正在执行)。它不会被system. 因此,如果您按 CTRL+c,则会中止 的执行loop.py,但不会中止test_loop.py. 因此,如果您在调用 之后添加一些代码system,您会看到该代码将在您按下 CTRL+c 后执行。

于 2013-08-25T08:22:52.857 回答