美文网首页
Windows路径名以点号(.)结尾的问题

Windows路径名以点号(.)结尾的问题

作者: CodingCode | 来源:发表于2023-03-21 05:33 被阅读0次

    今天踩到一个坑,记录一下

    在Linux系统里面,路径名是可以以点号结尾的。

    mkdir /tmp/path.
    

    这个路径path.最后的点号和正常其它字符一样。
    但是在windows系统里面,这个路径是不允许的,这没什么,遗憾的是windows并不报错,而是直接忽略,这就把我肯惨了。

    例如,测试命令:

    mkdir C:/tmp/path
    mkdir C:/tmp/path.
    

    这两个命令输出同样的结果,即创建目录c:/tmp/path,后面写法的点号(.)直接被忽视。

    而如果使用C语言访问:

    FILE * f = fopen( "c:\\temp\\path\\test.log", "a+" );
    FILE * f = fopen( "c:\\temp\\path.\\test.log", "a+" );
    

    这两个语句输出同样的效果,即打开文件"c:\temp\path\test.log";在我们的例子中,fopen的文件名字符串是拼接出来的,所以在拼接的过程中存在对点号的使用不当,导致在linux平台和windows平台行为不兼容的问题。

    好吧,反正记录下来,windows平台路径名不支持以点号结尾,其处理方式是直接忽视,并不报错。

    相关文章

      网友评论

          本文标题:Windows路径名以点号(.)结尾的问题

          本文链接:https://www.haomeiwen.com/subject/ivoprdtx.html