rsk*_*k82 5 c++ windows console
这是测试示例:
(1).简单程序做无限循环:
#include <iostream>
using namespace std;
int main() {
int counter = 0;
while (1) cout << ++counter << ": endless loop..." <<endl;
}
Run Code Online (Sandbox Code Playgroud)
(2).通过system()命令启动以上示例的另一个程序:
#include <iostream>
#include <windows.h>
using namespace std;
int main() {
system("endless_loop.exe");
cout << "back to main program" << endl;
}
Run Code Online (Sandbox Code Playgroud)
在执行Ctrl+Break此程序时,文本back to main program不显示.如何将此组合键限制为内部进程并将执行指针返回主应用程序?
另一件事是我并不总是能控制内部程序的源代码,所以我无法改变那里的东西.
添加这个::
#include <signal.h>
...
signal (SIGINT, SIG_IGN);
Run Code Online (Sandbox Code Playgroud)
调用后signal(),程序会忽略 Ctrl-Break。fork()在 Linux 上,忽略信号通过/传播到子进程exec()。
exec()由于 O/S + 运行时库的工作方式,我希望 Windows 能够重置默认信号处理。因此,如果您希望子进程忽略Break,请将上面的代码也添加到其中。