使用系统调用执行c程序

jes*_*sia 1 c linux

我想在C中编写一个程序,它可以读取另一个程序并将其交给处理器执行.可以使用系统调用来执行它而不使用shell(linux)

谢谢

asc*_*ler 6

您正在寻找的系统调用是execve.它相关的功能execl,execlp,execle,execv,execvp取决于您希望如何存储和传递的命令行参数和/或环境变量.但问题是,所有这些功能都将阻止调用它的程序执行任何其他操作,因为新程序将替换现有程序.

如果要运行程序,等待它完成,然后恢复原始程序,请尝试使用库函数system.(虽然system确实需要/ bin/sh.)

如果你需要的东西票友,你可能必须结合forkwaitpid用的一个exec*功能.在手册页和网络上有很多关于如何组合这些功能的例子.