Почему вы копируете токен в command
при анализе command
? Это очень небезопасно.
Вы можете сделать:
char *command_tok, *args_tok;
command_tok = strtok(command, delimiter);
args_tok = strtok(NULL, delimiter);
Теперь command_tok
и args_tok
указывают на часть команды и аргументов исходной строки, если она анализируется правильно Обратите внимание, что они указывают на части буфера command
и не имеют собственной выделенной памяти. Вы можете безопасно копировать их в другие буферы.