gpt4 book ai didi

perl - 如果 getcwd() 无权访问,为什么要回退到 cwd()?

转载 作者:行者123 更新时间:2023-12-04 14:48:21 24 4
gpt4 key购买 nike

FindBin 模块在编译时使用此函数确定当前工作目录(参见源代码 here):

sub cwd2 {
my $cwd = getcwd();
# getcwd might fail if it hasn't access to the current directory.
# try harder.
defined $cwd or $cwd = cwd();
$cwd;
}

在哪里 cwd()getcwd()都是从 Cwd 导入的模块。在哪些情况下 getcwd()失败但 cwd()还在工作吗? (如果重要的话,我对 Linux 平台最感兴趣)

也可以看看:
  • How do Perl Cwd::cwd and Cwd::getcwd functions differ?
  • Why you should use getcwd and not cwd
  • 最佳答案

    正如评论所说,getcwd()如果进程对当前目录(及其所有祖先)没有足够的访问权限,则可能会失败。 cwd()有可能向一个可能是 setuid 的外部 pwd即使在这种情况下,也可以命令并获取目录。

    更一般地说,getcwd()被记录为行为类似于 POSIX getcwd称呼。 cwd()被记录为更灵活。在 Linux 上,它们之间的差异可能非常小,但 CwdFindBin模块旨在在 Perl 支持的所有平台上工作。其中包括 Windows、VMS、pre-OSX MacOS、IBM z/OS 和其他一大堆。在这些方面,命令之间的差异可能很大。

    关于perl - 如果 getcwd() 无权访问,为什么要回退到 cwd()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35685112/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com