- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 opendir/readdir/closeir 来重现一个类似于 ls 的程序,它运行得很好,直到我尝试使用递归选项 ls “/dev/” 来访问“/dev/fd/”,它找到的文件比实际存在的文件多,这些文件不是隐藏文件(我的意思是“.”开头的文件)。真正的 ls 给我:“/dev/fd/:”“0 1 2 3”我也是。但是,问题是在 gdb 中,它发现了另外 3 个文件,即 4,5 和 6。我听说 gdb 创建了自己的环境,所以让我们忘记这一点。当我尝试 ls "/dev/fd/"-R 时,真正的 ls 立即停止列表,而我的程序给出:
“/dev/fd/3:”
“/dev/fd/3/3/”
“/dev/fd/3/3/......../10”
stat 至少在 40 个文件后返回 -1,但执行继续:段错误。
在我的计算机中,“/dev/fd/3/”等都是符号链接(symbolic link),宏“S_ISDIR”在现有文件上返回 0,但在不存在的文件上返回 0,例如:“/dev/fd/6/“它返回1...
我想知道为什么我的程序出错,而真正的 ls 却没有,我注意到 ls 在我的计算机中使用 stat64,但当我这样做时它仍然出错..它还使用 fstat64、futex 和其他我的系统调用不知道。
我可以向您展示我的一些代码示例或更多细节,这对我来说真的很难解释,对此我感到很抱歉。
谢谢你。
PS:我在 readdir 手册页中没有得到该声明:“readdir 返回的数据可能会被同一目录流的 readdir 的后续调用覆盖”
最佳答案
PS : I don't get that statement in the readdir manpage : "The data returned by readdir may be overwritten by subsequent calls to readdir for the same directory stream"
他们基本上想说的是,该函数是不可重入的,并且 readdir
返回的指针不应该简单地缓存为唯一值,因为底层数据正在被缓存。下次调用 readdir 函数时,指向的内容将会更改。基本上,它们允许实现定义可由函数回收的静态分配的数据,或由操作系统管理的动态内存,以便 readdir 的调用者不必担心管理内存由readdir
的返回值指向。例如,对于如下示例函数:
int* my_sample_increment()
{
static int val = 0;
val++;
return &val;
}
如果你要做类似的事情
int* int_ptr_1 = my_sample_increment();
int* int_ptr_2 = my_sample_increment();
然后 int_ptr_1
和 int_ptr_2
将指向相同的值,在本例中它将是值 1
。每个指针不会指向唯一的整数值。
所以 readdir
也是如此。您不能简单地调用 readdir
并存储返回的指针,期望在以后使用它,而不会通过任何后续调用 readdir
修改所指向的数据保存指针的时间和使用指针的时间之间。如果您需要这样的功能,这就是可重入版本 readdir_r
的用途。
关于c - readdir(3) 奇怪的行为 : finding non existing files in/dev/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921277/
我有一个 合作伙伴集合,我正在使用 pymongo 来检索数据 当我使用 MongoDB 查询集合时,我看到以下结果 db.partner.find({'unique_key': 'c89dbe313
嗨,我正在尝试在一个 find 命令中查找所有 js 和 css 文件。我尝试了以下所有方法但徒劳无功: find WebContent -name "*.[jc]ss?" find WebConte
我使用以下 find 命令查找并显示所有具有输入文本模式的文件。 找 。 -type f -print|xargs grep -n "模式" 我有很多项目文件夹,每个文件夹都有自己的名为“Makefi
我在Windows环境中使用Gnuwin32二进制文件。 当我想查找某种类型的文件时(例如PDF),我通常运行: find . -iname '*.pdf' -print 这在任何UNIX系统上均可完
我使用的是 Julia 编程语言,我知道你可以通过以下方式使用 find 函数: a = [ 1 2 3 4 3 5 3 6 7 8 9 3 ] find(a .== 3) 它将返回:3,5,7,12
jsperf's link 我不是 jQuery 专家(甚至不是一个好的用户),我没有研究它的整个源代码(只有一小部分不能帮助我解决这个问题)。 有人可以为我解释一下吗? 最佳答案 这个: $p.fi
我应该如何在 CentOS 7 中修复这个错误? [jalal@goku HW4]$ git clone https://github.com/pathak22/pyflow.git Cloning
是否可以更改传递给 find 中的 exec 的参数?例如,我需要以不同的名称复制文件:*.txt -> *.new.txt现在我正在为两个命令执行此操作: find /root/test -name
我想通过cleartool find 命令找到*.cs 和*.cpp 文件。但它失败了。 cleartool find "M:\test_view\code" -name "*.cs *.cpp"
我正在使用 PyMongo,看到有人建议使用 find()[:] 而不是 find()。很好奇有什么区别? 最佳答案 [:] 制作列表的浅拷贝,因此对对象的引用是相同的。我查看了 Pymongo 文档
我正在处理文件和目录,以在每个目录中查找最近修改的文件。我的代码可以工作,但作为 Ruby 的新手,我无法正确处理错误。 我使用 Find.find 获取递归目录列表,为每个目录调用我自己的函数 ne
/usr/bin/ld: cannot find -ldlib /usr/bin/ld: cannot find -lcblas /usr/bin/ld: cannot find -llapack 在
我有一些数据文件的一系列索引文件,它们基本上采用这种格式 索引文件:asdfg.log.1234.2345.index 数据文件:asdfg.log 这个想法是搜索所有索引文件。如果值 XXXX 出现
我有一个 find我运行以查找名称包含 foo 的文件的命令. 我想跳过 .git目录。下面的命令有效 除了 它打印一个 烦人 .git任何时候它跳过 .git目录: find . ( -name .
我有以下想做的事情: find . -maxdepth 6 \( -name \*.tar.gz -o -name bediskmodel -o -name src -o -name ciao -o
当我在表中查找隐藏字段时,我看到了两个隐藏字段。但是,我想通过 ID 进一步细化这两个字段。我注意到,当我使用“包含”在整个表上使用 find 时,我得到了 2 个字段。但是,如果我对隐藏字段的查找结
我正在使用下面的命令生成文件列表及其 m5sum。问题是某些文件或文件夹的名称中有空格。我将如何处理这些? find -type f -name \* | xargs md5sum 最佳答案 尝试:
我正在使用下面的命令生成文件列表及其 m5sum。问题是某些文件或文件夹的名称中有空格。我将如何处理这些? find -type f -name \* | xargs md5sum 最佳答案 尝试:
我有一个使用正则表达式查找文件的脚本。代码如下: find $dir | grep "$regex" 脚本运行有点慢,我想优化一下。搜索需要一些时间来执行,我想从中获得更好的性能。我试过这种尝试: f
这令人沮丧。我认为问题出在 api 响应返回的对象上。也许它是在字符串中,所以我所做的就是复制“postman”的响应并将其直接粘贴到js上。这样我就可以确定它在对象/数组中。但结果还是同样的错误。
我是一名优秀的程序员,十分优秀!