gpt4 book ai didi

c - execvp 忽略带有 ' 的参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:49 24 4
gpt4 key购买 nike

我要执行下面的命令

ubus -S call network.interface status '{"interface": "lan"}'

在 C: 中使用 execvp

char* arg[] = {"ubus", "-S", "call", "network.interface" , "status", "'{\"interface\": \"lan\"}'", NULL};
execvp(arg[0],arg);

但是命令不起作用。我进行了调查,发现原因是第 5 个参数 ('{"interface": "lan"}') 包含一个看起来被忽略的特殊字符 '通过 execvp

如何避免这个问题?

最佳答案

错误的路径.. 参数显示为 {"interface": "lan"} , 不是 '{"interface": "lan"}' .引号仅适用于您的 shell,因此它知道内部的空格属于参数而不是两个参数之间的分隔符。 ubus永远不会看到他们。

编辑:最好说 ubus 不应该 永远不会看到它们,因为在您的实现中,它会看到,而这只是 ubus 的语法错误.

关于c - execvp 忽略带有 ' 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32678576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com