我有一个二进制文件,里面包含了一个用C语言写的程序,其中的函数如下所示:
int main()
{
int a, b;
foo(a,b);
return 0;
}
现在我想通过在另一个名为“solver”的程序中使用fork()和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”程序内函数的参数是否接收由命令行传递给“solver”程序的变量。
execve
命令的手册了解它是如何工作以及需要传递哪些参数。 - Kerrek SBmain()
函数的参数argv[0]
提供了什么信息。 - alk