Comparação lado a lado de EEXIST e EISDIR — entenda as diferenças, causas e soluções.
Uma operação de criação de arquivo falhou porque já existe um arquivo com o nome especificado.
Uma operação que requer que o arquivo não exista foi tentada sobre um arquivo existente. Isso ocorre com as flags O_CREAT | O_EXCL em open(), ao chamar mkdir() em um diretório existente ou ao criar um symlink onde já existe um.
Verifique se o arquivo existe antes de criá-lo. Use O_CREAT sem O_EXCL se a sobrescrita for aceitável. Remova o arquivo existente primeiro, se apropriado.
EISDIRA operação não é permitida em um diretório, mas o caminho alvo é um diretório.
Houve uma tentativa de realizar uma operação específica de arquivo (como abrir para escrita ou unlink) em um diretório.
Use operações específicas de diretório como rmdir() ou opendir() em vez de operações de arquivo. Para remover um diretório e seu conteúdo, use rm -r.