Это не связано с UDP. EPIPE
происходит только для «потоковых» файловых дескрипторов - каналов Unix и TCP-сокетов.
Я предполагаю, что у вас есть какое-то управляющее TCP-соединение, которое отключается на удаленном конце, когда вы переходите в фоновый режим. Вам нужно выяснить, как сохранить его работоспособным или повторно подключиться, когда приложение проснется.
Вы также можете обрабатывать (или игнорировать) EPIPE
, см. sigaction(2)
, и реагировать на него соответственно при возврате из write(2)
.