Как проанализировать путь к папке с пробелами в коде 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);