gpt4 book ai didi

linux - 如何在使用 CRT 单元的程序中处理 SIGINT?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:55 25 4
gpt4 key购买 nike

我有一个使用CRT 单元的控制台应用程序(程序)。在 Linux 下,当我按下 CTRL+C 时,没有任何反应。但是,我想像人们期望的那样处理这个 SIGINT 信号(通过立即退出程序)。我发现一些注意事项,即使用 CRT 重新定义了 STDIN 和 STDOUT 内容,因此普通的 SIG 处理程序不起作用。目前,我尝试了 fpSignal(SIGINT, SignalHandler(@DoSig));,但仍然按 CTRL+C 没有任何作用。当我手动(通过 htop)向进程发送 SIGINT 时,处理程序启动。但不是使用 CTRL+C。不幸的是,不使用 CRT 单元不是一种选择。

非常感谢任何帮助:)

最佳答案

原因是 CRT 单元将重定向标准输入/输出句柄,因此您必须“手动”检查 SIGINT,信号处理程序将不起作用。您应该使用 KeyPressed 函数检查按下的键,然后使用 ReadKey 检查是否已发送 SIGINT(例如:Ctrl-C)。

关于linux - 如何在使用 CRT 单元的程序中处理 SIGINT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com