0

が指すファイル/ディレクトリを削除する必要がありますpath。だから私は を呼び出しremove(path)、これが で失敗した場合ENOTEMPTY、それは空でないディレクトリであり、それに応じて処理します。

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

コンパイルすると、ENOTEMPTY undeclared. ENOTEMPTY#includeした unistd.h ( man 2 rmdir) で定義されていますが、それでもエラーが発生します。errno が に設定されているかどうかを確認する正しい方法は何ENOTEMPTYですか?

gcc 4.6.3、64 ビット Ubuntu。

4

1 に答える 1

4

エラー定数は、C 標準ヘッダーで宣言されてい<errno.h>ます。#includeプロジェクトでそのファイルを作成する必要があります。

于 2012-09-04T19:42:37.500 に答える