c/c++语言开发共享MSYS2:如何禁用路径名到驱动器号的自动转换?

在MSYS2 shell中测试用mingw编译的C程序时,我遇到了一个问题:我编写了一个命令行解析器,它根据windows约定接受选项(以/开头)。 如果我这样调用我的程序来生成输出文件:

 ./example.exe /o test 

最终在argv[1]中的结果实际上是O:/ 。 从运行CMD.EXE的控制台窗口进行测试时,它可以正常工作。 这个真正最小的程序演示了这种行为

 #include  int main(int argc, char **argv) { if (argc > 1) { puts(argv[1]); } return 0; } 
 $ ./example.exe /o O:/ 

所以我想这是MSYS2 shell试图提供帮助,并将类似于root下面的单字母路径的内容替换为驱动器字母语法。 有没有办法禁用此行为? 总是启动CMD.EXE进行测试有点麻烦。

    您可以使用MSYS2_ARG_CONV_EXCL环境变量来禁用此行为。 例如,尝试运行:

     MSYS2_ARG_CONV_EXCL=* ./example.exe /o test 

      以上就是c/c++开发分享MSYS2:如何禁用路径名到驱动器号的自动转换?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519014.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐