当前位置:七道奇文章资讯系统安全Linux安全
日期:2011-06-15 16:21:00  来源:本站整理

Linux下显示某一目录下文件名列表的C程序[Linux安全]

赞助商链接



  本文“Linux下显示某一目录下文件名列表的C程序[Linux安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
以下是一个Linux/Unix下显示某一目录下文件列表的C程序,相当于最基本
的ls号令的功效,显示的内容报告该目录下的子目录以及文件名:
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
int main(int argc, char *argv[])
{
    DIR *dp;
    struct dirent *dirp;
    int n=0;
    if(argc != 2)
    {
        printf("a single argument is required ");
        exit(0);
    }
    if((dp=opendir(argv[1])) == NULL)
        printf("can't open %s", argv[1]);
    while(((dirp=readdir(dp)) != NULL) && (n<=50))
    {
        if(n % 1 == 0) printf(" ");
        n++;
        printf("%10s", dirp->d_name);
    }
    printf(" ");
    closedir(dp);
    exit(0);
}
假如只是显示该目录下的子目录名,则需求利用以下程序(此中还包含了
一个关于子目录名的冒泡排序):
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
 
int main(int argc, char *argv[])
{
    DIR *dp;
    struct dirent *dirp;
    struct stat buf;
    char tempDirName[100];
    char dirNames[100][100];
    int n=0, i=0, j=0, dirCount = 0;
    if(argc != 2)
    {
        printf("a single argument is required ");
        exit(0);
    }
    strcat(tempDirName, argv[1]);
    if((dp=opendir(argv[1]))==NULL)
        printf("can't open %s", argv[1]);
    while(((dirp=readdir(dp))!=NULL) && (n<=50))
    {
        n++;
        strcpy(tempDirName, "");
        strcat(tempDirName, argv[1]);
        strcat(tempDirName, dirp->d_name);
        if(IsDirectory(tempDirName))
        {
            strcpy(dirNames[dirCount], dirp->d_name);
            dirCount++;
        }
    }
    printf(" ");
   
    for(j=0; j<dirCount; j++)
    {
        for(i=0; i<dirCount; i++)
            if(strcmp(dirNames[i], dirNames[i+1]) > 0)
            {
                strcpy(tempDirName, dirNames[i]);
                strcpy(dirNames[i], dirNames[i+1]);
                strcpy(dirNames[i+1], tempDirName);
            }
    }
    for(i=0; i<dirCount; ++i)
        printf(" %s", dirNames[i]);
    printf(" ");
   
    closedir(dp);
    exit(0);
}
int IsDirectory(const char *dirname)
{
    struct stat sDir;
    if(stat(dirName, &sDir) < 0)
        return 0;
    if(S_IFDIR == (sDir.st_mode & S_IFMT))
        return 1;
    return 0;   以上是“Linux下显示某一目录下文件名列表的C程序[Linux安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • windows下的近似linux下的grep号令--findstr
  • linux下mysql链接被防火墙禁止的办理办法
  • Linux下mysql新建账号及权限设置办法
  • SUSE Linux下搭建Web服务器
  • Windows/Linux MySQL忘掉密码重置密码教程
  • Linux下Apache自动监测重启脚本(智能化程度较高)
  • linux备份 linux克隆 linux clone
  • <b>为什么 Linux不需求碎片整理</b>
  • CentOS6 yum搭建Linux+Nginx+PHP+MYSQL(LNMP)
  • Linux系统有效防备ARP攻击
  • Linux下 Memcache的安装和简单管理
  • 笔记本预装linux重装成windows系统
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .