【发布时间】:2013-01-28 18:51:02
【问题描述】:
我有一个使用 CRT 单元的控制台应用程序 (program)。在 Linux 下,当我按下CTRL+C 时,什么也没有发生。但是,我想按预期处理这个SIGINT 信号(通过立即退出程序)。我发现一些注意事项,使用 CRT 重新定义了 STDIN 和 STDOUT 的东西,所以普通的 SIG 处理程序不起作用。目前,我尝试了fpSignal(SIGINT, SignalHandler(@DoSig));,但仍然按下CTRL+C 没有任何作用。当我手动(通过 htop)向进程发送 SIGINT 时,处理程序会启动。但不是使用 CTRL+C。
不幸的是,不使用CRT 单位不是一种选择。
非常感谢任何帮助:)
【问题讨论】:
-
CRT 单元叫什么?你说的是屏幕吗? X11下的一些终端仿真器?如今,大多数 PC 都有 LCD 屏幕......
-
你应该展示你的源代码以获得帮助。你读过advancedlinuxprogramming.com & kernel.org/doc/man-pages/online/pages/man7/signal.7.html
-
by "CRT Unit" 我的意思是freepascal单元CRT:freepascal.org/docs-html/rtl/crt
标签: linux freepascal lazarus