C 编程 - 使用 sudo 权限执行另一个程序

标签 c linux system sudo popen

我有一个 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/

相关文章:

C 编程石头剪刀布不起作用

c++ - C/C++ 中某些头文件中的 sys/type.h

LInux 恢复脚本返回意外标记

linux - 需要快速中断处理程序

linux - 用于编程和黑客攻击的 Linux 发行版是什么?

c# - 列表<double> 到 ALGLIB 的 double[,]

c - 基于网络事件的编程真的更好吗……?

linux - yum + 消息是什么 - 没有可用的包 ansible

unix - unlink 和 rm 在 unix 上的区别

c++ - 如何在 C++ 中 "modify"系统 ("pause")