Portál AbcLinuxu, 13. července 2025 13:07


Dotaz: blokovanie ctrl-c programom v C

20.12.2004 12:57 palo
blokovanie ctrl-c programom v C
Přečteno: 265×
Odpovědět | Admin
Chcem sa spytat ci neviete sposob ako naprogramovat v programe aby neskoncil pri spusteni klavesovej skratky CTRL-C ale aby normalne bezal dalej.

Skusal som si citat stty man page, ale moc mi to nepomohlo. taktiez v programe nepouzivam ziadne curses ani tak.

Pozeral som si aj man signals ale nasiel som tam daco ako ->The signals SIGKILL and SIGSTOP cannot be caught or ignored.

este som cital aj man sigaction a tam som nasiel tiez daco ako ->bla bla bla... signal except SIGKILL and SIGSTOP

Neviete akym sposobom by som teda mohol spravit na programe aby sa na ctrl-c neukoncoval. Popripade ked to nejde urobit v programe da sa to nejako spravit v systeme aby tato skratka nezabijala proces ?

Za odpoved predom dakujem
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

20.12.2004 13:17 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: blokovanie ctrl-c programom v C
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aby běžel dál, není obvykle tak skvělý nápad. Proč to chceš? Chápal bych požadavek jako ,ukončil se korektně namísto náhlého konce` (což uděláš lepším handlerem -- viz signal(3), které funkce lze v handleru bezpečně použít).
#include <unistd.h>
#include <signal.h>
void handler(int sig)
{
}
int main(void)
{
    signal(SIGINT, handler);
    while (1) {
        sleep(1);
    }
    return 0;
}
20.12.2004 13:26 Palo
Rozbalit Rozbalit vše Re: blokovanie ctrl-c programom v C
mno takze som na to dosiel ctrl-c je SIGINT (yeti je ale bleskovka ;o)!) takze keby to niekto potreboval

#include signal.h
#include stdio.h
void funkcia( )
{
printf("\nSIGINT prijate\n");
}
main( )
{ signal(SIGINT, funkcia);
while (1) {
printf(".");
fflush(stdout);
sleep(1);
}
}
Chcem to kvoli tomu ze som si spravil maly program ktory presmerovava vystup z programov k sebe a ked napr. chcem ukoncit vystup z ping cez ctrl-c tak mi to sunda aj moj program..
20.12.2004 17:34 twofish
Rozbalit Rozbalit vše Re: blokovanie ctrl-c programom v C
Tak zrovna printf v handleru SIGNIT pouzit nelze :o) (hledat se mi teda nechce, ale asi by to vytuhlo, kdyby ten signal prisel, kdyz ten program uz v printf bezi).
20.12.2004 17:43 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: blokovanie ctrl-c programom v C
Mně hlavně ten popis, co vlastně dělá, připadá jako vynalézání kola, roury nebo nečeho podobného... Ale úplně jsem to nepochopil, takže nevím.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.