EnderUNIX Team.


EnderUNIX İpucu

Arkadaşıma gönder , Ana Sayfa

[ C/C++ ]

"SIGPIPE Signal'i ve Handle edilmesi" - Özkan KIRIK - (2004-03-22 08:36:18)   [3965]

Programiniz karsi taraftan kapatilmis bir sockete veri yazmaya calistigi zaman, sistem "Broken Pipe" anlamina gelen SIGPIPE Signal'ini yollar.

Eger bu signal'i handle etmezseniz programiniz kapanir. (Herhangi bir core vb. cikti olmadan)

SIGPIPE'i handle etmek icin ve programinizin kapanmamasi icin asagida bir ornek verilmistir:

void handle_signal(int sig)
{
switch(sig){
case SIGPIPE:
/* catch broken pipe */
close(client_sock);
break;
case SIGHUP:
/* rehash the server */
break;
case SIGTERM:
/* finalize the server */
exit(0)
break;
}
}

signal(SIGPIPE,handle_signal); /* broken pipe signal */
signal(SIGHUP,handle_signal); /* hangup signal */
signal(SIGTERM,handle_signal); /* terminate signal */

Arkadaşıma gönder , Ana Sayfa