FWIW, я не поклонник использования Google Charts когда соответствие & конец важен. Я нахожу, что переменные для калибровки, в частности, непредсказуемы - диаграмма делает свою собственную вещь.
я еще не играл с Грубым/крутым/и т.д., но для проекта более высокого профиля я не буду использовать Google Charts.
signal
не самый надежный способ, поскольку он отличается в реализациях. Я бы рекомендовал использовать sigaction
. Теперь код Тома будет выглядеть так:
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
void my_handler(int s){
printf("Caught signal %d\n",s);
exit(1);
}
int main(int argc,char** argv)
{
struct sigaction sigIntHandler;
sigIntHandler.sa_handler = my_handler;
sigemptyset(&sigIntHandler.sa_mask);
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
pause();
return 0;
}
Для консольного приложения Windows вы хотите использовать SetConsoleCtrlHandler для обработки CTRL + C и CTRL + BREAK .
См. Пример здесь .
Вы должны поймать SIGINT signal (мы говорим о POSIX, верно?)
См. ответ @Gab Royer относительно sigaction.
Пример:
#include <signal.h>
#include <stdlib.h>
#include <stdio.h>
void my_handler(sig_t s){
printf("Caught signal %d\n",s);
exit(1);
}
int main(int argc,char** argv)
{
signal (SIGINT,my_handler);
while(1);
return 0;
}
Да, это вопрос, зависящий от платформы.
Если вы пишете консольную программу на POSIX,
используйте API сигналов (#include
В приложении с графическим интерфейсом пользователя WIN32 вы должны обрабатывать сообщение WM_KEYDOWN.