Я нашел похожие посты, но нет четких ответов на мои вопросы о strtok_r
.
Я использую strtok_r
для анализа командной строки, чтобы получить команды, которые мне нужно выполнить через execv сфлаги, однако, для целей тестирования я распечатаю.При попытке разделить несколько символов, исключая пробелы, он работает нормально.Но при проверке пробелов, используя код ниже:
void tokenize(char *str1)
{
char *token;
char *saveptr1;
int j, i;
const char *delim = " ";
i = strlen(str1);
for(j = 0; j < i; j++, str1 = NULL)
{
token = strtok_r(str1, delim, &saveptr1);
if(token == NULL)
break;
printf("save: %s\n", token);
printf("\n");
}
}
Я получаю следующий вывод для тестовой строки (ls -al
):
save: ls