c/c++语言开发共享如何在C代码中解析带空格的文件夹路径

我正在使用这个简单的C代码:

char * command = NULL; sprintf (command, "ls %s", folderpath); system(command); 

问题是文件夹名称中有空格…我知道在Unix中我需要添加一个“”,例如ls my folder name

我怎么能绕过这个? 谢谢!

    简单的方法是将文件夹名称放在单引号内 – sprintf( command, "ls '%s'", folder ); 。 注意@ndim提醒我们的命令注入

    请改用fork()exec*()

    如果您的具体问题是获取文件夹中的文件名列表,那么最好使用系统调用opendir / readdir / closedir。 有关详细信息,请参见其手册页

    如果你这样做:

     char * command = NULL; sprintf (command, "ls %s", folderpath); 

    你是在未定义的行为土地。 您需要为命令分配一些内存:

     char command[1000]; // for example sprintf (command, "ls %s", folderpath); 

      以上就是c/c++开发分享如何在C代码中解析带空格的文件夹路径相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

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

      ctvol管理联系方式QQ:251552304

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

      (0)
      上一篇 2021年3月8日
      下一篇 2021年3月8日

      精彩推荐