![C/C++:以 root 身份运行多个命令](https://linux22.com/image/61236/C%2FC%2B%2B%EF%BC%9A%E4%BB%A5%20root%20%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E5%A4%9A%E4%B8%AA%E5%91%BD%E4%BB%A4.png)
我想在我的 C 程序中执行命令。但是,我需要 root 权限才能创建一些文件夹。我运行以下命令:
system("echo <rootpass> | sudo cd <folder> && make install");
<rootpass> is given by the user (and thus the command should only execute if the user has root priviliges).
但是,当我运行此命令时,系统返回代码 256(EPERM /* 不允许操作 */)。
我该如何解决这个问题?
答案1
您必须编写一个脚本,其中包含expect
,sudo
和make install
来解决您的问题,并且您的system()
函数调用您的脚本,例如:
system("myscrip.sh");
对于阅读期望:如何从 Bash 以 root 身份登录并执行操作