So sánh song song EEXIST và EISDIR — hiểu sự khác biệt, nguyên nhân và cách sửa.
EEXISTThao tác tạo tệp thất bại vì một tệp với tên đã chỉ định đã tồn tại.
Một thao tác yêu cầu tệp không tồn tại lại được thực hiện trên tệp đã có. Xảy ra với cờ O_CREAT | O_EXCL trong open(), khi gọi mkdir() trên thư mục đã tồn tại, hoặc tạo symlink ở nơi đã có.
Kiểm tra tệp có tồn tại không trước khi tạo. Dùng O_CREAT mà không có O_EXCL nếu cho phép ghi đè. Xóa tệp hiện có trước nếu phù hợp.
EISDIRThao tác không được phép trên thư mục, nhưng đường dẫn đích là thư mục.
Có yêu cầu thực hiện thao tác dành cho tệp (như mở để ghi hoặc unlink) trên một thư mục.
Dùng các thao tác dành cho thư mục như rmdir() hoặc opendir() thay vì thao tác tệp. Để xóa thư mục và nội dung của nó, dùng rm -r.