执行一个程序我有一个包含有C语言编写的内部的功能的程序的二进制文件的样子:如何通过fork和exec
int main()
{
int a, b;
foo(a,b);
return 0;
}
,现在我想用叉子(执行该程序)和execve()在另一个叫做“求解器”的程序中。
int main(int argc, char* argv[])
{
pid_t process;
process = fork();
if(process==0)
{
if(execve(argv[0], (char**)argv, NULL) == -1)
printf("The process could not be started\n");
}
return 0;
}
这是一个好方法吗?因为它编译,但我不确定在“worker”程序中的函数的参数是否接收到通过命令行传递给“解算器”程序的变量
你可以阅读[execve']手册(http://man7.org/linux/man-pages/man2/execve.2.html)以了解如何它的工作原理和你必须传递给它的参数。 –
您可能想了解'main()'的参数'argv [0]'提供了什么。 – alk
“*这是一个好方法吗?*”号;-) – alk