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, даже если он игнорируется. При нормальном запуске приложения оно работает как положено.