问题标签 [closedir]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4451 浏览

c - closedir() 导致核心转储

我在 unix 平台上用 C 编写的代码中有以下几行。请让我知道为什么我将核心转储到 closedir() 函数中。我可以成功打开路径指定的目录。

0 投票
5 回答
18560 浏览

c - 使用 opendir()、readdir() 和 closedir() 有效地遍历目录树

C 例程 opendir()、readdir() 和 closedir() 为我提供了一种遍历目录结构的方法。但是,readdir() 返回的每个 dirent 结构似乎都没有为我提供一种有用的方法来获取指向 DIR 的指针集,我需要递归到目录子目录中。

当然,他们给了我文件的名称,所以我可以将该名称附加到目录路径和 stat() 和 opendir() 它们,或者我可以通过 chdir() 更改进程的当前工作目录并滚动它通过 chdir("..") 返回。

第一种方法的问题是,如果目录路径的长度足够大,那么将包含它的字符串传递给 opendir() 的成本将超过打开目录的成本。如果您更具理论性,则可以说您的复杂性可能会增加超过线性时间(在目录树中(相对)文件名的总字符数中)。

此外,第二种方法存在问题。由于每个进程都有一个当前工作目录,因此除了一个线程之外的所有线程都必须在多线程应用程序中阻塞。另外,我不知道当前工作目录是否只是为了方便(即,在文件系统查询之前,相对路径将附加到它上面)。如果是这样,这种方法也将是低效的。

我接受这些功能的替代品。那么如何有效地遍历 UNIX 目录树(其下文件的总字符数的线性时间)?

0 投票
3 回答
142 浏览

php - 列出目录中的所有图像而不列出内容

我正在使用以下内容列出目录中的所有 jpg 图像,但由于某种原因它不起作用,我认为我的一些 's 和 .s 可能在错误的位置,我想我有点困惑: -S。

0 投票
0 回答
568 浏览

c - Closedir() 在 Ubuntu 中转储核心

我使用此处找到的一段代码来检查目录是否为空。但是, closedir() 似乎会导致 Ubuntu 上的核心转储。任何想法为什么?

目录存在。Opendir 返回一个句柄,readdir 能够使用该句柄访问目录,并且该函数执行它应该执行的操作。但是,当我尝试关闭目录时,程序崩溃并出现错误

我目前的解决方法是让目录保持打开状态,因为这只是一个帮助kludge来做更大的事情的一部分。它运行,执行 suid 部分并退出。我只是讨厌让事情敞开...

0 投票
1 回答
74 浏览

c - closedir() 导致现有列表节点发生变化

这是我的功能的简化代码:

我在主要功能中使用:

问题是函数的第二次调用会更改在第一次调用中返回的列表元素。元素的sourceFilesbecome changed afterlistFilesInDirectory("dest/");被调用。

但是当我closedir(dir)从函数体中删除 a 时,一切正常并且元素sourceFiles不会改变。

我准备了一个简单的程序https://pastebin.com/9pTYmpm2,这样你就可以看到会发生什么。示例结果:

测试程序的结果

正如你所看到的,SourceFiles content 1并且SourceFiles content 2是不同的。第一个是在listFilesInDirectory("dest/")调用之前打印的,第二个是在调用之后打印的。但是,如果我closedir(dir)从功能中删除一切正常:

删除 closedir(dir) 后的结果

这里发生了什么?为什么会这样?如何预防?我不应该closedir()在我的程序中使用吗?

0 投票
2 回答
581 浏览

c - fork() 导致内存泄漏

当我尝试递归遍历 fork.Fork 中的目录时,会导致内存泄漏。如果我只是 fork everythink okkey,但是当我在子进程中调用函数时,我看到 valgrind 上的内存泄漏。我认为,我关闭了每个目录。但是 valgrind 说 opendir_tail.I尝试在父级中写入 clodir 但后来我分配了 1 个但有 2 个免费错误。问题出在哪里?

这是我的代码。

和 valgrind 输出