#include <unistd.h>
#include <unistd.h>
#include <sys/stat.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
#include <time.h>
#include <pwd.h>
void getRWX(const unsigned short m);
void printdir(char *dir, int depth){
DIR *dp;
struct dirent *entry;
struct stat statbuf;
if ((dp = opendir(dir)) ==NULL){
printf("fail to open the dir");
return;
}
chdir(dir);
while((entry = readdir(dp))!=NULL){
//以该目录项的名字为参数,调用lstat得到该目录项的相关信息;
lstat(entry->d_name,&statbuf);
if(S_ISDIR(statbuf.st_mode)){
if(strcmp(entry->d_name,"..")==0||strcmp(entry->d_name,".")==0)
continue;
// 打印目录项的深度、目录名等信息
// 递归调用printdir,打印子目录的信息,其中的depth+4;
getRWX(statbuf.st_mode);
printf("版权声明:本文为qq_45852929原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。