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

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

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

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

Почему сигнал не блокируется?
  • Вопрос задан
  • 309 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Учебный центр IBS
    AL-1802 Администрирование Astra Linux Special Edition 1.8
    2 недели
    Далее
  • Skillbox
    Linux для робототехников
    3 месяца
    Далее
  • Skillfactory
    Профессия C++ разработчик
    11 месяцев
    Далее
Решения вопроса 1
@kir55rus Автор вопроса
Вопрос решен. GDB переустанавливал обработчик сигнала
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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