我正在尝试编写一个程序,该程序使用sigaction拦截Ctrl ^ C,然后终止fork的子代。
代码:
file_name = input("What is your file name? Enter it here: ")
s = set()
with open(file_name) as f:
for name in f:
if name.startswith('From:'):
s.add(name)
print(len(s))
我试图删除示例中所有不必要的代码。由于某些原因,当我按Ctrl ^ C时无法使中断起作用。最终,我希望能够关闭孩子并继续在父母中生活。我在这里做错什么了吗?
答案 0 :(得分:0)
由于某些原因,当我按Ctrl ^ C时无法使中断工作。
由于您的数据位于IO缓冲区中,因此将printf("Interrupt Worked");
更改为printf("Interrupt Worked\n");
(添加\n
),您将获取数据。
有关IO缓冲区,请参见https://stackoverflow.com/a/53083985/7671328