所以我正在尝试实现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]是否是目录。任何建议都会非常有用。
答案 0 :(得分:1)
您需要使用struct stat sb
函数填充stat
:
struct stat sb;
if (stat(argv[i], &sb) != 0)
{
perror(argv[i]);
}
然后,只有这样,您才能使用S_ISDIR(sb.st_mode)
。