我正在使用这个简单的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