linux – 为什么glob lstat匹配条目?

linux – 为什么glob lstat匹配条目?,第1张

概述在 this question中查看行为时,我惊讶地看到perl lstat()s每个路径都匹配一个glob模式: $mkdir dir$touch dir/{foo,bar,baz}.txt $strace -e trace=lstat perl -E 'say $^V; <dir/b*>' v5.10.1lstat("dir/baz.txt", {st_mode=S_IFREG|06 在 this question中查看行为时,我惊讶地看到perl lstat()s每个路径都匹配一个glob模式:
$mkdir dir$touch dir/{foo,bar,baz}.txt  $strace -e trace=lstat perl -E 'say $^V; <dir/b*>' v5.10.1lstat("dir/baz.txt",{st_mode=S_IFREG|0664,st_size=0,...}) = 0lstat("dir/bar.txt",...}) = 0

我在我的linux系统上看到了与glob(模式)和< pattern>以及更高版本的perl相同的行为.

我的期望是,globbing只是opendir / readdir,并且它不需要检查它正在搜索的实际路径名.

这个lstat的目的是什么?它会影响glob()的返回吗?

解决方法 这个奇怪的行为已经是 noticed before on PerlMonks.事实证明,glob调用lstat来支持它的 GLOB_MARK标志,其结果是:

Each pathname that is a directory that matches the pattern has a slash appended.

要确定目录条目是否引用了子目录,您需要对其进行统计.即使没有给出标志,这显然已经完成.

总结

以上是内存溢出为你收集整理的linux – 为什么glob lstat匹配条目?全部内容,希望文章能够帮你解决linux – 为什么glob lstat匹配条目?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1049115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存