У меня проблема с обработкой сигналов. Я запускаю программу в терминале, я нажимаю CTRL + C, но не вижу, что «Я нажал CTRL-C» не был напечатан. Но я пытаюсь удалить строку execl("/usr/bin/gedit", "gedit", "test.c", NULL)
, «Я нажал CTRL-C».Обработка сигналов в C после execl
Могу ли я помочь вам, как напечатать «Я нажал CTRL-C» и объяснить, почему это так. Я ценю вашу помощь. Большое спасибо.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
int loop_forever = 1;
void on_sigint()
{
printf("\nI am pressed CTRL-C\n");
loop_forever = 0;
}
int main()
{
printf("My homework\n");
execl("/usr/bin/gedit", "gedit", "test.c", NULL);
signal(SIGINT, on_sigint);
while (loop_forever)
{
}
exit(1);
}
Я понимаю, что вы сказали. Большое спасибо. – Hoang
@ user3168209 Если этот ответ на ваш вопрос, вы можете [отметить его как принятый] (http://meta.stackexchange.com/a/5235) –