Linux 系统下文件信息的查询

/*************************************/
程序功能:Linux系统下文件信息的获取———————LS
姓名:王恩博
日期:2015.6.1
使用方法简述:对控制台下输入不同的命令行参数的个数以及内容让程序做出不同的处理方式
   ./ls 直接读取出当前根目录内非隐藏文件的名称
   ./ls -a读取出当前根目录下所有文件的名称
   ./ls -l 读取出当前根目录内非隐藏文件的名称以及属性
   ./ls -al 读取出当前根目录内所有文件的名称以及属性
   
   ./ls /root/**/ 读取指定目录下非隐藏文件的名称
   ./ls -a /root/**/ 读取指定目录下所有文件的名称
   ./ls -l /root/**/ 读取指定目录下非隐藏文件的名称以及属性
   ./ls -al /root/**/读取指定目录下所有文件的名称以及属性
/****************************************/

#include<sys/types.h>
#include<dirent.h>
#include<stdio.h>
#include<sys/stat.h>
#include<unistd.h>
#include<string.h>
#include<time.h>
int main(int argc,char **argv)
{
    DIR* ptr=NULL;
    char time[40]={'\0'};
    int i=0;
    struct dirent* dir=NULL;
    struct stat st;
    char dir_name[40]={'\0'};
    /**************************************/
        //./ls
    if(argc==1&&strcmp(argv[0],"./ls")==0)
    {
        ptr=opendir("./");
        while((dir=readdir(ptr))!=NULL)
        {
            strcpy(dir_name,dir->d_name);
            if(dir_name[0]!='.')
                printf("%s  \n",dir->d_name);
            memset(dir_name,0,40);
        }
        closedir(ptr);
    }
    /***************************************/
        //./ls -a
    if(argc==2&&strcmp(argv[0],"./ls")==0&&strcmp(argv[1],"-a")==0)
        {
                ptr=opendir("./");
                while((dir=readdir(ptr))!=NULL)
                {
                        strcpy(dir_name,dir->d_name);
                                printf("%s  \n",dir->d_name);
                }
                closedir(ptr);
        }
    /**************************************/
        //./ls -al
    else if(argc==2&&strcmp(argv[0],"./ls")==0&&strcmp(argv[1],"-al")==0)
    {
        ptr=opendir("./");
        while((dir=readdir(ptr))!=NULL)
        {
            stat(dir->d_name,&st);
                if(S_ISREG(st.st_mode))
                    printf("-");
                else if(S_ISDIR(st.st_mode))
                    printf("d");
                else 
                    printf("o");

                if(st.st_mode&S_IRUSR)
                    printf("r");
                else 
                    printf("-");
                if(st.st_mode&S_IWUSR)
                    printf("w");
                else 
                    printf("-");
                if(st.st_mode&S_IXUSR)
                    printf("x");
                else 
                    printf("-");

                if(st.st_mode&S_IRGRP)
                    printf("r");
                else 
                    printf("-");
                if(st.st_mode&S_IWGRP)
                    printf("w");
                else 
                    printf("-");
                if(st.st_mode&S_IXGRP)
                    printf("x");
                else 
                    printf("-");

                if(st.st_mode&S_IROTH)
                    printf("r");
                else 
                    printf("-");
                if(st.st_mode&S_IWOTH)
                    printf("w");
                else
                    printf("-");
                if(st.st_mode&S_IXOTH)
                    printf("x  ");
                else
                    printf("-  ");
                strcpy(time,ctime(&st.st_mtime));
                while(time[i]!='\n')
                {
                    printf("%c",time[i]);
                    i++;
                }
                printf("  %s\n",dir->d_name);
                i=0;
        }
        closedir(ptr);
    }
    /**************************************/
        //./ls -l
    else if(argc==2&&strcmp(argv[0],"./ls")==0&&strcmp(argv[1],"-l")==0)
        {
            ptr=opendir("./");
            while((dir=readdir(ptr))!=NULL)
            {
                strcpy(dir_name,dir->d_name);
                if(dir_name[0]!='.')
                {
                    stat(dir->d_name,&st);
                    if(S_ISREG(st.st_mode))
                    {
                        printf("-");
                    }
                    else if(S_ISDIR(st.st_mode))
                    {
                        printf("d");
                    }
                    else 
                        printf("0");

                    if(st.st_mode&S_IRUSR)
                                        printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWUSR)
                                            printf("w");
                                    else
                                        printf("-");
                                    if(st.st_mode&S_IXUSR)
                                            printf("x");
                                    else
                                            printf("-");

                                    if(st.st_mode&S_IRGRP)
                                            printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWGRP)
                                            printf("w");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IXGRP)
                                            printf("x");
                                    else
                                            printf("-");

                                    if(st.st_mode&S_IROTH)
                                            printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWOTH)
                                            printf("w");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IXOTH)
                                            printf("x  ");
                    else 
                        printf("-  ");
                    strcpy(time,ctime(&st.st_mtime));
                    while(time[i]!='\n')
                    {   
                        printf("%c",time[i]);
                        i++;
                    }
                    printf("  %s\n",dir->d_name);
                }
                i=0;
                memset(dir_name,0,40);
            }
            closedir(ptr);
        }
    /***************************************/
        //./ls  /root/****/
    else if(argc==2&&strcmp(argv[0],"./ls")==0)
        {
            ptr=opendir(argv[1]);
            while((dir=readdir(ptr))!=NULL)
            {
                strcpy(dir_name,dir->d_name);
                if(dir_name[0]!='.')
                    printf("%s\n",dir->d_name);
            }
        }       
    /******************************************/
        //./ls -l /root/***/
    else if(argc==3&&strcmp(argv[0],"./ls")==0&&strcmp(argv[1],"-l")==0)
        {
            ptr=opendir(argv[2]);
            while((dir=readdir(ptr))!=NULL)
            {
                strcpy(dir_name,dir->d_name);
                if(dir_name[0]!='.')
                {
                    memset(dir_name,0,40);
                    strcpy(dir_name,argv[2]);
                    strcat(dir_name,dir->d_name);
                    stat(dir_name,&st);
                    if(S_ISREG(st.st_mode))
                        printf("-");
                    else if(S_ISDIR(st.st_mode))
                        printf("d");
                    else 
                        printf("o");

                    if(st.st_mode&S_IRUSR)
                                            printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWUSR)
                                            printf("w");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IXUSR)
                                            printf("x");
                                    else
                                            printf("-");

                                    if(st.st_mode&S_IRGRP)
                                            printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWGRP)
                                            printf("w");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IXGRP)
                                            printf("x");
                                    else
                                            printf("-");

                                    if(st.st_mode&S_IROTH)
                                            printf("r");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IWOTH)
                                            printf("w");
                                    else
                                            printf("-");
                                    if(st.st_mode&S_IXOTH)
                                            printf("x  ");
                    else 
                        printf("-  ");

                    strcpy(time,ctime(&st.st_mtime));
                    while(time[i]!='\n')
                    {
                        printf("%c",time[i]);
                        i++;
                    }
                    printf("%  s\n",dir->d_name);
                }
                i=0;
                memset(dir_name,0,40);
            }
        }
    /************************************************/
        //./ls -a /root/*****/
    else if(argc==3&&strcmp(argv[1],"-a")==0)
        {
            ptr=opendir(argv[2]);
            while((dir=readdir(ptr))!=NULL)
            {
                printf("%s\n",dir->d_name);
            }
        }
    /**********************************************/
        //./ls -al /root/*****/
    else if(argc==3&&strcmp(argv[1],"-al")==0)
        {
            ptr=opendir(argv[2]);
            while((dir=readdir(ptr))!=NULL)
            {
                strcpy(dir_name,argv[2]);
                strcat(dir_name,dir->d_name);
                stat(dir_name,&st);
                if(S_ISREG(st.st_mode))
                    printf("-");
                else if(S_ISDIR(st.st_mode))
                    printf("d");
                else 
                    printf("o");

                if(st.st_mode&S_IRUSR)
                                        printf("r");
                                else
                                        printf("-");
                                if(st.st_mode&S_IWUSR)
                                        printf("w");
                                else
                                        printf("-");
                                if(st.st_mode&S_IXUSR)
                                        printf("x");
                                else
                                        printf("-");

                                if(st.st_mode&S_IRGRP)
                                        printf("r");
                                else
                                        printf("-");
                                if(st.st_mode&S_IWGRP)
                                        printf("w");
                                else
                                        printf("-");
                                if(st.st_mode&S_IXGRP)
                                        printf("x");
                                else
                                        printf("-");

                                if(st.st_mode&S_IROTH)
                                        printf("r");
                                else
                                        printf("-");
                                if(st.st_mode&S_IWOTH)
                                        printf("w");
                                else
                                        printf("-");
                                if(st.st_mode&S_IXOTH)
                                        printf("x  ");
                else 
                    printf("-  ");

                strcpy(time,ctime(&st.st_mtime));
                while(time[i]!='\n')
                {
                    printf("%c",time[i]);
                    i++;
                }
                printf("%  s\n",dir->d_name);
                i=0;
                memset(dir_name,0,40);
            }
        }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值