如何在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);