| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > send + SIGPIPE + QNX |
| Автор: proc_maker 15.5.2008, 22:03 |
| Здравствуйте уважаемые эксперты, вот такой вопрос: в POSIXе есть MSG_NOSIGNAL опция для функции send чтобы не поймать SIGPIPE если коннект разорван, однако в QNX этой опции нет (socket.h). signal(SIGPIPE, SIG_IGN) перехватит SIGPIPE для всего процесса что крайне нежелательно. Какой выход из ситуации для QNX? Огромное спасибо, Дмитрий |
| Автор: MAKCim 16.5.2008, 00:04 |
| proc_maker, перед send() определить, получен ли сегмент RST |
| Автор: proc_maker 16.5.2008, 08:37 |
| MAKCim, не подскажите как это сделать? Спасибо, Дмитрий |
| Автор: MAKCim 16.5.2008, 09:29 | ||
проверить состояние клиента перед send() если оно CLOSE_WAIT, то send() вызовет либо SIGPIPE, либо получение клиентским TCP сегмента RST в Linux проверяется так
в QNX нечто подобное должно быть |
| Автор: proc_maker 20.5.2008, 07:27 |
| Спасибо всем, проблема решилась обновлением версии QNX в которой присутствует MSG_NOSIGNAL. С уважением, Дмитрий |