- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你能帮我开发一个C语言程序来扫描当前目录并显示位于该处的所有文件的名称带有扩展名。然后程序转到父目录,然后成为当前目录,并且这些重复以上步骤,直到当前目录不存在成为根目录。谢谢。祝你有美好的一天。
附注对不起。这是我正在尝试工作的代码。它列出当前目录中的所有文件,但不转到父目录。P.S.S 我的代码列出了当前目录中的文件以及对父目录的更改。等等。它按我的预期工作,但我无法检查当前目录是否为根目录,并获得永恒循环。谢谢。
#include <unistd.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
int main(void)
{
DIR *d;
char cwd[1024];
struct dirent *dir;
do {
d = opendir(".");
if (getcwd(cwd, sizeof(cwd)) != NULL)
fprintf(stdout, "Current working dir: %s\n", cwd);
else
perror("getcwd() error");
if (d)
{
while ((dir = readdir(d)) != NULL)
{
if (dir->d_type == DT_REG)
{
printf("%s\n", dir->d_name);
}
}
chdir("..");
closedir(d);
}
// Do not know how to check if current directory is root
// and getting eternal loop
}while (cwd != "/");
return 0;
}
输出:
Current working dir: /
Current working dir: /
......................
Current working dir: /
最佳答案
您的 cwd[1] != 0
或 cwd[1] != '\0'
是一种不错的方法。无需将其转换为 int。
您还可以使用strcmp(cwd, "/")
,这使得您在做什么更加清楚。在 UNIX 或 Linux 系统的根目录中该值为零。
为了获得更便携的解决方案,您可以将当前目录名称与以前的目录名称进行比较,如下所示:
char cwd[1024];
char parent[1024];
getcwd(cwd, sizeof(cwd));
以及循环内部:
chdir("..");
getcwd(parent, sizeof(parent));
if (strcmp(cwd, parent) == 0)
break;
strcpy(cwd, parent);
在 POSIX 系统上,您可以在不使用 getcwd()
的情况下检查当前目录是否为根目录,使用如下代码:
int cwd_is_root(void)
{
struct stat cwd, parent;
if (stat(".", &cwd) < 0)
return -1;
if (stat("..", &parent) < 0)
return -1;
return cwd.st_ino == parent.st_ino && cwd.st_dev == parent.st_dev;
}
像您一样使用 getcwd
会更简单、更好,除非您正在编写自己的 libc! getcwd
是 Linux 上的系统调用。
关于C - 列出当前目录中的所有文件,然后移动到上面的目录,列出文件,依此类推,直到到达根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35455372/
我认为这应该不是一个大问题,但我自己找不到解决方案。一如既往:p 我有一个 UIWebView,其背景颜色设置为clearColor,但是当我尝试向下滚动太多时,我会在加载的 HTML 上方看到深灰色
我注意到,每当我重新安装我的应用程序时,IdentifierForVendor 都会不断变化。有没有办法让我的设备拥有相同的标识符?问题是,我需要确保标识符相同,因为我有一个备份系统,即使在删除并重新
一切都在标题中。 我有一个带有单元格的 UITableView。 cells 有一个Shadow (self.layer.shadow...)。 问题是一个单元格的阴影重叠上方的单元格。我怎样才能防止
我正在尝试创建一个切换开关,您可以在其中点击一侧,然后背景会滑过以使该侧“处于事件状态”。 为了适应可变宽度,我使用 display: table 设置了切换的两侧。这很好用。然后,我将第三个 div
我是一名优秀的程序员,十分优秀!