Я хочу, чтобы выполнить следующую командуexecvp игнорировать аргументы '
ubus -S call network.interface status '{"interface": "lan"}'
с execvp
в C:
char* arg[] = {"ubus", "-S", "call", "network.interface" , "status", "'{\"interface\": \"lan\"}'", NULL};
execvp(arg[0],arg);
но команда не работает. Я делаю расследование, и я обнаружил, что причина в 5-м аргументе ('{"interface": "lan"}'
) содержит специальный атрибут '
, который выглядит проигнорированным execvp
.
Как избежать этой проблемы?
«* execvp игнорировать аргументы с«*» Это не будет. Попробуйте заменить 'ubus' на' echo'. – alk
Также 'arg' пропускает конечный' NULL' дозорный. Это должно быть 'char * arg [] = {..., NULL};' – alk