使用系统调用执行c程序

使用系统调用执行c程序,c,linux,C,Linux,我想用C编写一个程序,它可以读取另一个程序并将其交给处理器执行。不使用shelllinux,是否可以使用系统调用来执行 谢谢您要找的系统呼叫是Exeve。它具有相关的函数execl、execlp、execle、execv、execvp,具体取决于您希望存储和传递命令行参数和/或环境变量的方式。但问题是,所有这些函数都将阻止调用它的程序执行任何其他操作,因为新程序将替换现有程序 如果要运行程序,请等待程序完成,然后恢复原始程序,请尝试使用库函数系统。虽然系统确实需要/bin/sh 如果您需要更高级

我想用C编写一个程序,它可以读取另一个程序并将其交给处理器执行。不使用shelllinux,是否可以使用系统调用来执行


谢谢

您要找的系统呼叫是Exeve。它具有相关的函数execl、execlp、execle、execv、execvp,具体取决于您希望存储和传递命令行参数和/或环境变量的方式。但问题是,所有这些函数都将阻止调用它的程序执行任何其他操作,因为新程序将替换现有程序

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


如果您需要更高级的功能,可能需要将fork和waitpid与exec*函数结合使用。手册页和Web上有很多关于如何组合这些功能的示例。

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

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


如果您需要更高级的功能,可能需要将fork和waitpid与exec*函数结合使用。手册页和网络上有很多关于如何组合这些功能的示例。

如果您想要一种简单的方法,请使用:

 system("./Program_To_Run.o");
然而,这不是最好的方法。这是最快的方式

如果使用符号,则可以将过程切换到后台:

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

如果您需要一种简单的方法来完成此操作,请使用:

 system("./Program_To_Run.o");
然而,这不是最好的方法。这是最快的方式

如果使用符号,则可以将过程切换到后台:

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