我必须删除path指向的文件/目录。因此,我调用remove(path),如果在ENOTEMPTY时失败,那么它是一个非空目录,我会相应地处理它。

status = remove(path);
if (status == -1 && errno == ENOTEMPTY)
    ftw(path, recursive_dir_delete, 64);

在编译时,我得到ENOTEMPTY undeclaredENOTEMPTY是在unistd.h(man 2 rmdir中定义的,我已经将其包括在内,但仍然会得到错误。检查errno是否设置为ENOTEMPTY的正确方法是什么?
GCC4.6.3,64位Ubuntu。

最佳答案

错误常数在C标准头<errno.h>中声明。你必须在你的项目中#include那个文件。

10-04 20:23