EBADFEBADF — Неверный файловый дескриптор
Аргумент-файловый дескриптор не является допустимым открытым дескриптором или не открыт для запрошенной операции.
Что вызывает эту ошибку
Программа попыталась использовать файловый дескриптор, который никогда не открывался, уже закрыт или открыт не в том режиме. Типичные причины — двойное закрытие дескриптора или его использование после неудачного вызова open().
Как исправить
Перед использованием проверяйте корректность файловых дескрипторов. Проверяйте возвращаемое значение вызовов open() и socket(). Не используйте дескриптор после вызова close(). Используйте strace для трассировки операций с файловыми дескрипторами.
Связанные коды ошибок
SIGTTIN (21)SIGTTIN (21) — Чтение из терминала фоновым процессом
Фоновый процесс попытался читать из управляющего терминала.
SIGILL (4)SIGILL (4) — Недопустимая инструкция
Процесс попытался выполнить недопустимую, некорректную или привилегированную машинную инструкцию.
EPIPEEPIPE — Разорванный канал
Предпринята попытка записи в канал или сокет, читающий конец которого был закрыт.
EFAULTEFAULT — Неверный адрес
Системному вызову передан неверный адрес памяти в качестве аргумента.
SIGURG (23)SIGURG (23) — Срочное условие на сокете
На сокет поступили срочные или внеполосные данные.
EMFILEEMFILE — Слишком много открытых файлов
Достигнут лимит открытых файловых дескрипторов для данного процесса.