Linux SIGPIPE Crash Server

Так что в начале моего приложения я звоню

signal(SIGPIPE, SIG_IGN);

я думал, что мое приложение будет игнорировать SIGPIPE. Однако я все еще получил сбой SIGPIPE со следующим кодом:

write(fd, outgoingStr->c_str(), size);

где fd - это int (дескриптор файла), а size - размер строки. Что я здесь не так делаю?

Кстати, я недавно использовал, чтобы обернуть эту запись в if, чтобы проверить возвращаемое значение ошибки, и я считаю, что у меня никогда не было сбоев SIGPIPE до тех пор, пока это не было удалено. Проверка if ничего не делала, только обращалась к консоли, если произошла ошибка, поэтому я не уверен, имеет ли она отношение или нет.

1 ответ

Проблема закончилась тем, что GDB остановится на SIGPIPE, даже если он игнорируется. При нормальном запуске приложения оно работает как положено.

Другие вопросы по тегам