首页 > 解决方案 > 此代码如何列出文件夹中的所有项目?

问题描述

在人的层面上,当一个人打开一个容器时,只要有光,没有东西相互遮挡,人就可以一下子看到一切。

在下面的代码中..打开目录时,没有任何灯光(信息)吗?它不是一下子就能看到一切吗?

它正在阅读 1 个项目,并且因为它已经阅读了它,所以该项目会自动消失?是什么让它消失了?没有“ +1”被添加到“ count”..

然后它读取下一个项目,就好像它再次是第一个项目一样。

几乎就像所有东西都堆叠在一起一样,除了顶部的东西之外什么都看不到,一旦它读取顶部的项目,顶部的项目就会消失,下一个项目会被推到顶部读书 ?

是什么推动了它?

  DIR *d;
  struct dirent *dir;

  d = opendir("test/");

    while ((dir = readdir(d)) != NULL) {
      fputs(dir->d_name, stdout);
      fputs("\n", stdout);
    }

    closedir(d);

标签: c

解决方案


readdir() linux 手册页条目

readdir() 函数返回一个指向 dirent 结构的指针,该结构表示 dirp 指向的目录流中的下一个目录条目。它在到达目录流的末尾或发生错误时返回 NULL。

所以“+1”在里面readdir()。在这个级别上,并没有真正被向下或向上推,而是目录列表被爬取,并且一次检查一个项目。


推荐阅读