怎么删除一个非空的目录?
这是尚未编写的源代码:
# include
# include
# include
# include
# include
int main(void)
{
DIR * dirp;
struct direct ent * direntp;
struct stat buf;
PID _ t PID;
dirp = opendir("/share/tmp ");/*打开一个目录*/
if(dirp = = null){
perror("不能打开/共享/tmp ");
} else {
for(;;){
direntp = readdir(dirp);/*读取目录的内容*/
if( direntp == NULL) /*如果是空目录,则删除*/
rmdir(/share/tmp);
for(;;){
if(lstat(directp-> s _ name,& buf)printf(" lstat error \ n ");
exit(-1);
}else{
if(!S_ISDIR(buf.st_mode)) < 0) {/*确定是否是目录*/
printf("检查文件模式错误\ n ");
退出(1);
} else if
unlink(directp-> s _ name);/*如果不是,则删除*/
else
If((PID = fork())printf(" fork error \ n ");
退出(1);
else if(pie = = 0)
chdir(directp-> s _ name);/*将进程cd新建到新目录*/
}
closedir(dirp);
}
返回EXIT _ SUCCESS
}
0条评论