如何在C程序中列出目录中的文件?

新手上路,请多包涵

我正在尝试在 Linux 上编写一个 ftp 服务器。在这件事上,如何通过 C 程序列出终端目录中的文件?也许我可以使用 exec 函数来运行 find 命令,但我希望文件名作为字符串发送客户端程序。我怎样才能做到这一点?

感谢您的回答。

原文由 cemal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 345
1 个回答

一个适用于 POSIX 兼容系统的示例:

 /*
 * This program displays the names of all files in the current directory.
 */

#include <dirent.h>
#include <stdio.h>

int main(void) {
  DIR *d;
  struct dirent *dir;
  d = opendir(".");
  if (d) {
    while ((dir = readdir(d)) != NULL) {
      printf("%s\n", dir->d_name);
    }
    closedir(d);
  }
  return(0);
}

请注意,这样的操作在 C 中依赖于平台。

来源:http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1046380353& id=1044780608

原文由 Jean-Bernard Jansen 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题