diff -r e1b7dbc6dc4a -r 1b21c78d8706 c++/POSIXoveFronty/Fronta/program.cpp --- a/c++/POSIXoveFronty/Fronta/program.cpp Tue Apr 07 12:30:11 2009 +0200 +++ b/c++/POSIXoveFronty/Fronta/program.cpp Fri May 08 00:02:05 2020 +0200 @@ -24,6 +24,7 @@ /** Nastavíme reakci na signál SIGTERM */ signal(SIGTERM, zpracujSignal); signal(SIGINT, zpracujSignal); + signal(SIGHUP, zpracujSignal); /** TODO: zeptat se na název fronty – readline */ //strcpy(nazevFronty, VYCHOZI_NAZEV_FRONTY); @@ -64,10 +65,11 @@ while (true) { /** TODO: načítat pomocí readline */ char zprava[100]; - cout << "Zadejte zprávu: \033[22;32m"; + cout << "Zadejte zprávu: \033[22;32m"; // zelená cin.getline(zprava, 100); cout << "\033[0m\n"; + /** TODO: ošetřit ctrl+d (zacyklení) */ if (fronta.odesliZpravu(zprava) == 0) { cout << "Zpráva odeslána." << endl; } else { @@ -92,7 +94,7 @@ } void zpracujSignal(int signal) { - if (signal == SIGTERM || signal == SIGINT) { + if (signal == SIGTERM || signal == SIGINT || signal == SIGHUP) { fronta.zavriFrontu(false); cout << endl << "\033[22;31m" << "Končím program na základě signálu " << signal << "." << "\033[0m" << endl; // červená exit(1);