所以我正在尝试实现 linux 命令 rm -rf 并且在我的主程序中我有类似的东西:
struct stat sb;
if(unlink(argv[i]) == 0)
{
printf (argv[i]); printf(" Deleted\n");
}
if (S_ISDIR(sb.st_mode))
{
remove_dir(argv[i]);
}
else
{
perror(argv[i]);
}
我想做的是,如果用户输入的是目录,则调用 void remove_dir();删除目录,但它只是打印 argv[i] 是否是目录。任何建议都会非常有帮助。
最佳答案
您需要使用函数 stat
填充 struct stat sb
:
struct stat sb;
if (stat(argv[i], &sb) != 0)
{
perror(argv[i]);
}
然后,也只有这样,您才能使用 S_ISDIR(sb.st_mode)
。
关于c++ 检查 Unix 中是否存在目录,如果存在则调用 void 函数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192057/