documentation for the Cwd module指出,fast_abs_path
是一个“更危险,但可能更快的abs_path
版本”。它在哪方面是危险的?在什么情况下它会更快?行为是否因平台而异?
发布于 2012-05-12 00:45:00
fast_abs_path
调用chdir
让内核一次解析通向传递给它的所有内容的路径,而不是仔细检查每个组件并逐段构建新路径;问题是,权限可能会阻止它在以后chdir
回到原始目录。(有些系统可以使用open
和fchdir
来解决这个问题,但并不是所有运行Perl的平台都能可靠地使用它。)
这种情况是否会发生取决于您的脚本是否可能在它无法直接访问的目录中执行。在类Unix系统上,当setuid包装器chdir
s到受限权限区域,然后丢弃setuid时,可能会发生这种情况。(以前,受限权限位于名为lock
的路径组件上;各种邮件和Usenet新闻子系统都使用它来保护它们的队列目录。)
https://stackoverflow.com/questions/10555284
复制相似问题