-
Notifications
You must be signed in to change notification settings - Fork 1
/
redefine_ctrl_c.cpp
45 lines (42 loc) · 850 Bytes
/
redefine_ctrl_c.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifdef _WIN64
#ifdef _MSC_VER_
#include <iostream>
int main(){
std::cout<<"cannot compile with vc++!!"<<std::endl;
}
#endif
#ifdef __GNUC__
#include <windows.h>
#include <bits/stdc++.h>
#include <csignal>
BOOL WINAPI ConsoleHandler(DWORD);
int main(){
SetConsoleCtrlHandler((PHANDLER_ROUTINE)ConsoleHandler,TRUE);
for(;;){
}
}
BOOL WINAPI ConsoleHandler(DWORD dwType) {
switch(dwType){
case CTRL_C_EVENT:
std::cout<<"now I have to end program!"<<std::endl;
::system("pause");
break;
}
exit(1);
return TRUE;
}
#endif
#endif
#ifdef _LINUX
#include <signal.h>
#include <iostream>
void exit_func(int key){
if (key==2)
std::cout<<"now I have to end program(with ctrl-c)!"<<std::endl;
exit(1);
}
int main(){
signal(SIGINT, exit_func);
for(;;);
}
#endif