12 int isKernel26OrHigher();
15 JNIEXPORT
void JNICALL Java_com_intellij_rt_execution_application_AppMain_triggerControlBreak
16 (JNIEnv
*env
, jclass clazz
) {
18 GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT
, 0);
20 if (isKernel26OrHigher()) {
21 kill (getpid(), SIGQUIT
);
25 sprintf(buffer
, "/proc/%d/status", ppid
);
27 if ( (fp
= fopen(buffer
, "r")) != NULL
)
30 char * ppid_name
= "PPid:";
31 while (fscanf (fp
, "%s\n", s
) > 0) {
32 if (strcmp(s
, ppid_name
) == 0) {
34 fscanf(fp
, "%d", &pppid
);
35 kill (pppid
, SIGQUIT
);
48 int isKernel26OrHigher() {
51 if ( (fp
= fopen("/proc/version", "r")) != NULL
)
55 fscanf(fp
, "Linux version %d.%d", &major
, &minor
);
57 if (major
< 2) return 0;
58 if (major
== 2) return minor
>= 6;