Порівняння EEXIST та EISDIR — розберіться у відмінностях, причинах та виправленнях.
EEXISTОперація створення файлу завершилася невдачею, оскільки файл із вказаним іменем вже існує.
Спроба виконати операцію, що вимагає відсутності файлу, над вже наявним файлом. Виникає при використанні прапорів O_CREAT | O_EXCL у open(), при виклику mkdir() для існуючої директорії або при створенні символічного посилання, яке вже існує.
Перевіряйте наявність файлу перед його створенням. Використовуйте O_CREAT без O_EXCL, якщо перезапис допустимий. За потреби спочатку видаліть наявний файл.
EISDIRОперація не дозволена для директорій, але цільовий шлях є директорією.
Зроблено спробу виконати файлову операцію (наприклад, відкрити для запису або unlink) над директорією.
Використовуйте операції, специфічні для директорій: rmdir() або opendir() замість файлових операцій. Для видалення директорії разом з вмістом використовуйте rm -r.