【问题标题】:How to sort files by name in a directory on linux [closed]如何在Linux上的目录中按名称对文件进行排序[关闭]
【发布时间】:2017-05-20 07:29:11
【问题描述】:

我正在学习linux内核编程,我想构建一个程序,用c编程语言对目录中的文件进行排序,就像按名称排列图标一样,欢迎任何建议。

【问题讨论】:

  • 您是否构建了一个程序来读取目录中的文件名并将它们存储在内存中?如果没有,您的问题现在应该忽略排序。
  • 有趣的想法。你的问题是什么?你看,这是一个帮助解决问题的网站。这不是一个“我们为您的下一个项目创造想法”的社区。​​span>

标签: c linux sorting directory kernel


【解决方案1】:

对文件进行排序意味着遍历文件

在内核空间中,您可以使用iterate_dir 函数来做到这一点。例如。 列出文件可以这样执行:

// Callback for 'iterate_dir', prints entry.
static int printdir(struct dir_context *ctx, const char *name, int namlen,
       loff_t offset, u64 ino, unsigned int d_type) {
    printk("File: %.*s\n", namelen, name);
}

// usage
struct file* dir = ...; // opened directory
struct dir_context ctx = {.actor = &printdir};
iterate_dir(dir, &ctx);

对文件进行排序,可以将它们一个一个地存入数组中,然后调用sort()函数。或者您可以将文件存储到有序容器中(如二叉树),在这种情况下不需要进行排序。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 2018-09-10
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 2018-11-10
    相关资源
    最近更新 更多