使用系统调用执行c程序

时间:2011-01-05 04:45:39

标签: c linux

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

由于

2 个答案:

答案 0 :(得分:6)

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

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

如果您需要更高级的内容,则可能需要将forkwaitpidexec*个功能合并。在手册页和网络上有很多关于如何组合这些功能的例子。

答案 1 :(得分:0)

如果您想要一种简单的方法来使用它:

 system("./Program_To_Run.o");

然而,这不是最好的方法。这是最快的方式。

如果您使用&符号,则可以将过程转到后台:

system("./Program_To_Run.o &");