为什么(探测文件 #P "/")返回 nil?



这似乎是ECL实现中的一个错误 - 或者由于标准中的一些细节:

    > (probe-file #P"/usr")
    #P"/usr/"
    > (probe-file #P"/usr/")
    #P"/usr/"
    > (probe-file #P"/")
    NIL
    > (probe-file #P"//")
    NIL

再举一个案例:

    > (probe-file #P"/.")
    #P"/"

更新,FWIW,SBCL做了我所期望的:

    * (probe-file #P"/")
    #P"/"

这是我正在测试的修复程序的提交消息(希望这能回答问题——这确实是一个错误):

Unixfsys:删除coerce_to_posix_filename

这是围绕cygwin和mingw中的错误的解决方法(它们是 已修复),当目录名称以"/"结尾时。此修复程序 在根目录上调用的探测器文件引入了额外的错误(它 在所有平台上返回 nil)。

原文评论:

这会将路径名指示符转换为名称字符串,其中 目录不以斜杠"/"结尾的特殊性,因为 并非所有POSIX平台(尤其是Windows)都支持此功能。

错误参考:

https://sourceforge.net/p/mingw-w64/patches/34/

修复 #351。

相关内容

  • 没有找到相关文章

最新更新