创建一个父进程,它从命令行获得n个参数arg1,arg2,...,argn。 arg1是源C的名称,arg2是来自编译arg1的可执行文件结果的名称,而arg3,...,argn是要启动的参数。Unix进程 - 编译并运行c程序
父代编译arg1并创建可执行文件arg2,然后将其运行到子进程中。
我试图解决这个问题,使用一些例子,但我并没有真正理解它们,所以程序不工作。我真的需要一些帮助......
#include<unistd.h>
#include<stdio.h>
#include<sys/wait.h>
#include<string.h>
int main(int argc, char* argv[]){
char com[200];
int p;
p=fork();
strcpy(com,"gcc -o prog.c");
strcat(com,argv[1]);
if(p==0){
if(WEXITSTATUS(system(com))==0)
execl("./prog.c","./prog.c",argv[3],argv[4],argv[5],NULL);
}
wait(0);
exit(0);
return 0;
}
C程序我想使用,读取两个文件和存储数据的一些输入数据到另一个文件。
“该程序不能正常工作”不是一个问题... – Dave
你真的不得不问一个问题。 –
看看你的第二个'strcat'的结果,你会发现它的格式不正确。此外,您尝试执行C程序而不是编译输出。 –