Помилка «Поганий дескриптор файлу» в Linux може бути ознакою помилка або неправильна конфігурація у вашій програмі чи сценарії. Розуміючи, що таке дескриптори файлів і як ними слід керувати, ви можете запобігти виникненню цієї помилки. Завжди переконайтеся, що дескриптори файлів правильно відкриваються, використовуються та закриваються. 16 грудня 2023 р.
Описана вами помилка означає це один із процесів намагається використати номер дескриптора файлу, який не відповідає опису відкритого файлу в цьому процесі. Але ваш код не містить повного або перевіреного прикладу, який міг би відтворити проблему.
Щоб збільшити кількість дескрипторів файлів у Linux:
- Відредагуйте /etc/security/limits. файл conf.
- Змініть обмеження nofile так, щоб soft було 4096, а hard – 8192. Або відредагуйте наявні рядки, або додайте ці два рядки до файлу: * soft nofile 4096 * hard nofile 8192. Символ «*» є символом підстановки, який ідентифікує всіх користувачів.
IOError: [Errno 9] Неправильний дескриптор файлу в Python виникає, коли ми намагаємося отримати доступ до файлу за допомогою os. system(), але файл уже відкрито в іншому місці та не закрито належним чином. Цій помилці можна запобігти, переконавшись, що файли належним чином закриті після використання.
Дескриптор файлу — це унікальний ідентифікатор або посилання, яке операційна система призначає файлу під час його відкриття. Це дозволяє програмам взаємодіяти з файлами, сокетами або іншими ресурсами введення/виведення (I/O).. Дескриптор файлу використовується операційною системою для відстеження файлу та виконання операцій з ним.
Поширені причини помилки Використання дескриптора файлу, який ніколи не відкривався та не ініціалізувався. Спроба виконати операцію, яку файловий дескриптор не підтримує (наприклад, читання з дескриптора, який відкритий лише для запису).