这是还没写好的源码:
#include
#include
#include
#include
#include
int main( void )
{
DIR* dirp;
struct dirent* direntp;
struct stat buf;
pid_t pid;
dirp = opendir( "/share/tmp" );/*打开一个目录 */
if( dirp == NULL ) {
perror( "can't open /share/tmp" );
} else {
for( ; ; ) {
direntp = readdir( dirp ); /*读目录里的内容*/
if( direntp == NULL ) /*如果是个空目录就把它删除*/
rmdir(/share/tmp);
for( ; ; ) {
if(lstat(directp->s_name,&buf)<0) { /*读出文件名*/
printf("lstat error\n");
exit(-1);
}else{
if( ! S_ISDIR(buf.st_mode)) < 0) { /*判断是否是一个目录*/
printf("check file mode error\n");
exit(1);
}else if
unlink(directp->s_name) ; /*如果不是就删除它*/
else
if((pid=fork())<0) {/*如果是就判断是否是一个空目录,是就删除它,这里考虑得不周到,fork一个进程,运行上面的算法,就是这里不懂了。要写个函数吧?*/
printf("fork error\n");
exit(1);
else if(pie == 0 )
chdir(directp->s_name);/*新的进程cd到新的目录*/
}
closedir( dirp );
}
return EXIT_SUCCESS;
}