如何使用 execvp 函数执行 bash 的 sudo 命令?
How to execute the bash's sudo command using execvp function?
我有一个可执行文件,a.out
,它接受几个command-line
参数。此可执行文件需要以root
权限运行,如sudo ./a.out arg1 arg2 ...
。
如何在c++中使用execvp
系统调用来实现这一点?
char *args[5];
args[0]="sudo";
args[1]="./a.out";
args[2]="arg1";
args[3]="arg2";
args[4]=NULL;
execvp("sudo", args);
shell将给定的命令分割成以空格分隔的单词。在PATH
中查找第一个单词,并将所有单词作为参数传递给命令。
由于execvp()
将为您搜索PATH
,您可以简单地将"sudo"作为命令传递,然后将参数传递给命令。注意,命令的第一个参数是命令的名称。
你正在执行的命令是"sudo",所以这是第一个参数;然后将剩下的单词作为单独的参数,作为数组传递。
这是不工作:?execvp("/usr/bin/sudo"、"。/。
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 使用QProcess执行命令,并将结果存储在QStringList中
- 数组长度,为什么从命令行获取时不能使用它?
- 如果用户输入无效,如何使用字符串变量-C++重复输入命令
- clang整洁10忽略了我的NOLINT命令
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 如何处理linux终端中带有负号(-)的C++中的命令行参数
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 如何使用ESP8266向谷歌主页发送命令
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 通过 Openssl 命令行加密,通过 c++ 解密
- 如何在C/C++程序中使用执行sudo命令
- sudo命令的QT应用程序权限
- 如何使用 execvp 函数执行 bash 的 sudo 命令?
- 在Qt QProcess中执行sudo命令