EEXIST 与 EISDIR 的并排对比 — 理解差异、原因和修复方法。
EEXIST文件创建操作失败,因为指定名称的文件已存在。
对已存在的文件执行了要求文件不存在的操作。常见于 open() 使用 O_CREAT | O_EXCL 标志、对已存在目录调用 mkdir(),或在已有符号链接处创建新符号链接。
在创建文件前检查其是否已存在。若允许覆盖,使用不带 O_EXCL 的 O_CREAT 标志。必要时先删除已有文件。
EISDIR该操作不允许在目录上执行,但目标路径是一个目录。
对目录执行了文件专属操作(如以写入方式打开或调用 unlink)。
对目录使用专属操作,如 rmdir() 或 opendir(),而非文件操作。若要删除目录及其内容,使用 rm -r。