我有一个 C 程序,它可以打开 mp3 并将 jpg 图解提取到同一文件夹中。如果我在没有 root 权限的情况下执行这个程序,我会崩溃。如果我用 sudo 执行它,它会正常工作。
现在,我需要另一个 C 程序,当它需要所选 mp3 的 jpg 图稿时启动前一个程序。
我试图通过调用 popen("./firstProgram test.mp3", "r") 函数或 system("/(absolute path)/firstProgram test.mp3") 函数来调用它们,即使在命令中使用 sudo 或not 和相对或绝对路径。但是似乎没有版本有效。
我怎样才能成功地从第二个程序启动第一个程序?
谢谢!
最佳答案
fork 然后使用execl
char sudo[]="/usr/bin/sudo";
char pbin[]="/usr/local/bin/puppet";
NOTICE("running puppet: %s %s",sudo,pbin);
errno=0;
execl(sudo,sudo,pbin,(char *)NULL);
/* we should never get as far as this */
显然,我建议阅读 man execl
以获取更多信息
关于C 编程 - 使用 sudo 权限执行另一个程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48791210/