免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 6593 | 回复: 22
打印 上一主题 下一主题

c如何实现文件排序?? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-02-06 11:33 |只看该作者 |倒序浏览
Dir 目录里面有一堆文件是数据开头,请问如何实现查找由小到大排序。

论坛徽章:
0
2 [报告]
发表于 2009-02-06 11:36 |只看该作者
ls出来的不就是排好序的?

论坛徽章:
0
3 [报告]
发表于 2009-02-06 11:36 |只看该作者
man 1 ls

论坛徽章:
0
4 [报告]
发表于 2009-02-06 11:45 |只看该作者
原帖由 JohnBull 于 2009-2-6 11:36 发表
man 1 ls

哥哥,要用C实现啊,要用opendir 方法去查找啊

论坛徽章:
0
5 [报告]
发表于 2009-02-06 11:57 |只看该作者
原帖由 udb6688 于 2009-2-6 11:45 发表

哥哥,要用C实现啊,要用opendir 方法去查找啊

看 ls 的源代码。

论坛徽章:
0
6 [报告]
发表于 2009-02-06 12:29 |只看该作者
提供一个方法参考


  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. int main(int argc, char *argv[])
  4. {
  5.         FILE *fp;
  6.         char line[1024];
  7.         char cmd[100] = {0};

  8.         strncpy(cmd, "ls ", sizeof("ls "));
  9.         strncpy(cmd + sizeof("ls ") - 1, argv[1], sizeof(argv[1]));
  10.        
  11.         fp = popen(cmd, "r");
  12.         while (fgets(line, 1024, fp) != NULL)
  13.         {
  14.                 printf("%s", line);
  15.         }

  16.         return 0;
  17. }
复制代码

论坛徽章:
0
7 [报告]
发表于 2009-02-06 12:50 |只看该作者
原帖由 udb6688 于 2009-2-6 11:45 发表

哥哥,要用C实现啊,要用opendir 方法去查找啊

既然你得到了所有文件名,那就自己排个序

论坛徽章:
0
8 [报告]
发表于 2009-02-06 12:56 |只看该作者
原帖由 zhuhefang2006 于 2009-2-6 12:29 发表
提供一个方法参考


#include
#include

int main(int argc, char *argv[])
{
        FILE *fp;
        char line[1024];
        char cmd[100] = {0};

        strncpy(cmd, "ls ", sizeof("ls "));
        strncpy(cmd + siz ...



不要用管道

论坛徽章:
0
9 [报告]
发表于 2009-02-06 13:00 |只看该作者
原帖由 fera 于 2009-2-6 12:50 发表

既然你得到了所有文件名,那就自己排个序


怎么排序,用什么方法排?

论坛徽章:
0
10 [报告]
发表于 2009-02-06 13:18 |只看该作者
原帖由 udb6688 于 2009-2-6 13:00 发表


怎么排序,用什么方法排?


strncmp()?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP