我发现了类似的帖子,但我的问题没有明确的答案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