The Cwd 模块的文档 http://perldoc.perl.org/Cwd.html#abs_path-and-friends指出fast_abs_path
是“更危险,但可能更快的版本abs_path
“。它在什么方面有危险?在什么情况下它更快?行为是否因平台而异?
fast_abs_path
调用chdir
让内核一次性解析通向您传递的路径的路径,而不是仔细检查每个组件并逐个构建新路径;问题是权限可能会阻止它chdir
之后返回原始目录。 (有些系统可以使用open
and fchdir
来解决这个问题,但它并不是在运行 Perl 的所有平台上都可靠地可用。)
这种情况是否会发生取决于您的脚本是否可以在无法直接访问的目录中执行。在类 Unix 系统上,当 setuid 包装器出现这种情况时,可能会发生这种情况chdir
s 到受限权限区域,然后删除 setuid。 (从历史上看,受限权限位于名为的路径组件上lock
;各种邮件和 Usenet 新闻子系统已使用它来保护其队列目录。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)