27.3.10. Сигналы и сокеты

27.3.10. Сигналы и сокеты

С сокетами связаны три сигнала:

? SIGIO — сокет готов к вводу/выводу. Сигнал посылается процессу, который связан с сокетом;

? SIGURG — сокет получил экспресс-данные (мы их использовать не будем, поэтому особо останавливаться на них нет смысла);

? SIGPIPE — запись в сокет больше невозможна. Сигнал посылается процессу, связанному с сокетом. Например, функция write() вызывает сигнал SIGPIPE, если удаленный процесс завершен или связь по сети невозможна.

Пример обработки сигнала SIGPIPE приведен ниже.

Листинг 27.6. Обработка сигнала SIGPIPE

#include "sock.h"

#include <signal.h>

/* обработчик сигнала SIGPIPE */

sigpipe_handler() {

 err_quit("Получен SIGPIPE ");

}

main() {

 int sock; /* дескриптор сокета */

 /* установка обработчика сигнала SIGPIPE */

 signal(SIGPIPE, sigpipe_handler);

 /* работа с сокетом */

}

Данный текст является ознакомительным фрагментом.