Задать вопрос

Почему не блокируется SIGPIPE?

Здравствуйте.
Программа работает с сокетом. Чтобы не вылетал сигнал SIGPIPE, блокирую его:
sigset(SIGPIPE, SIG_IGN);
Но выполнение все равно завершается сигналом SIGPIPE во время выполнения send:
ssize_t size = send(socket, data, currentSize, 0);

Если установить флаг MSG_NOSIGNAL, то сигнал перестанет вылетать. Но данный способ работает под линуксом, но не работает под солярисом

Почему сигнал не блокируется?
  • Вопрос задан
  • 307 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Инженер по тестированию
    8 месяцев
    Далее
  • Яндекс Практикум
    DevOps для эксплуатации и разработки
    6 месяцев
    Далее
  • Яндекс Практикум
    Go-разработчик с нуля
    8 месяцев
    Далее
Решения вопроса 1
@kir55rus Автор вопроса
Вопрос решен. GDB переустанавливал обработчик сигнала
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы