当前位置:  技术问答>linux和unix

求助!linux下的c语言高手请进

    来源: 互联网  发布时间:2015-01-14

    本文导语:  小弟现遇一问题:我想顺序读出一个目录下的所有文件,该怎样写代码?由于我不知道该目录下文件的文件名,有什么办法么?请高手指教,谢谢各位啦!! | man 3 scandir man 3 alphasort 自己...

小弟现遇一问题:我想顺序读出一个目录下的所有文件,该怎样写代码?由于我不知道该目录下文件的文件名,有什么办法么?请高手指教,谢谢各位啦!!

|
man 3 scandir

man 3 alphasort

自己去查吧 今天我太累了

要是要例子告诉我 晚上给你写个

|
#include 
#include 
#include 
 
void scandir(char *dirname)
{
   DIR *dir;
   struct dirent *ent;
 
   printf("First pass on '%s':n",dirname);
   if ((dir = opendir(dirname)) == NULL)
   {
     perror("Unable to open directory");
     exit(1);
   }
   while ((ent = readdir(dir)) != NULL)
     printf("%sn",ent->d_name);
 
   printf("Second pass on '%s':n",dirname);

   rewinddir(dir);
   while ((ent = readdir(dir)) != NULL)
     printf("%sn",ent->d_name);
   if (closedir(dir) != 0)
     perror("Unable to close directory");
}
 
void main(int argc,char *argv[])
{
   if (argc != 2)
   {
     printf("usage: opendir dirnamen");
     exit(1);
   }
   scandir(argv[1]);
   exit(0);
}

|
void printdir(char *dir, int depth)
{
        DIR *dp;
        struct dirent *entry;
        struct stat statbuf;

        if((dp=opendir(dir))==NULL){
                fprintf(stderr,"cannot open directory: %sn",dir);
                return;
        }

        chdir(dir);
        while((entry=readdir(dp))!=NULL){
                lstat(entry->d_name,&statbuf);
                if(S_ISDIR(statbuf.st_mode)){
                        /* found a dirent, but ignore , and .. */
                        if(strcmp(".",entry->d_name)==0||
                           strcmp("..",entry->d_name)==0)
                                continue;
                        printf("%*s%s/n",depth,"",entry->d_name);

                        /* Recurse at a new indent level */
                        printdir(entry->d_name,depth+4);
                }
                else
                        printf("%*s%sn",depth,"",entry->d_name);
        }
        chdir("..");
        closedir(dp);
}


         
int main(int argc, char * argv[])
{
        char *topdir=".";
        if(argc>=2)
                topdir=argv[1];

        printf("Directory scan of %s n",topdir);
        printdir(topdir,0);
        printf("done. n");

        exit(0);
}

|
在这方面还不如直接用shell。

|
不知道你的顺序是正序还是反序,
用系统调用最好,简单可靠!!
如system,popen,...
详man一下!

|
popen("ls -1 *", "r");
足够了。

|
建议你用链表结构。

    
 
 

您可能感兴趣的文章:

  • 求助,在linux下,c语言和汇编语言的接口是什么?
  • EJB2.0提供了许多新特性,包括EJB SQL语言,谁有EJB SQL语言的帮助文档,100分求助!
  • 求助:linux脚本语言写SQL语句
  • 在Linux的Eclipse中用C语言编程,求助
  • [求助]c语言有关?:的问题。
  • 求助VxWorks下C语言中如何嵌入汇编
  • 求助在linux下用c语言取得双网卡的网关地址
  • [求助]谁对c语言熟悉,一个问题
  • 求助linux下socket多线程编程的例子(C语言写的)
  • 高分求助:linux内核中的汇编语言和Dos或windows下的汇编是一样的吗,有这方面的书或资料可供学习吗,分不够可再加,决不食言
  • 紧急求助:如何在Linux下用C语言实现MD5/DES解密
  • C语言中执行shell脚本出错(菜鸟求助)
  • 求助:在 unix下用c语言编程,怎么实现ftp文件时的断点续传
  • 求助一道linux C语言的错误问题
  • 急,c语言高手求助
  • 求助,jsp中用到的html语言的含义
  • 求助:c语言socket文件传输中buffer缓存出现的问题
  • 【求助】iplanet问题,求助高手解答!
  • 求助ftp编程高手一个问题----有关免费包libftp-5.0
  • 求助!高手帮忙
  • 向高手求助Linux下网络包转发的问题!!!!!!!
  • 内存问题,向各位高手求助!!!
  • 求助linux高手!redhat6.2登陆问题
  • 求助 ==> 代码移殖:从Linux到的Windows,请高手指点一二,谢谢啦
  • 求助高手,在VMware环境下安装完RedHat 9.0之后无法激活网卡
  • 高手求助!!!
  • 向玩cs的linux高手求助。。。。。。
  • 救命~~求助~~iptables高手请进
  • 关于共享存储段的使用,求助高手
  • 求助,关于显卡驱动的安装,高手请进,谢谢
  • 高手!高分求助applet的部署!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助
  • 紧急求助java多线程编程!!!!!!!!!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3