我正在尝试让另一个程序修改我发送给它的变量。我对此的尝试如下:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
char *margs[3];
pid_t pid;
margs[0] = "child.out";
margs[1] = "4";
margs[2] = NULL;
system("gcc testc.c -o child.out");
switch ((pid = vfork()))
{
case -1:
perror("fork");
break;
case 0:
execv("child.out", margs);
printf("SHOULD NOT PRINT\n");
exit(EXIT_FAILURE);
break;
default:
waitpid(pid, 0, 0);
break;
}
printf("%s\n", margs[1]);
return 0;
}
使用testc.c阅读
int main(int argc, char** argv)
{
argv[1] = "3";
return 0;
}
当我编译并运行它时,它打印出&#34; 4&#34;而不是&#34; 3&#34;。 或者可能有更好的方式从第二个程序访问信息,而不是我在这里尝试做的事情。我需要第一个程序来调用gcc并编译第二个程序,正如我上面所做的那样。 有什么想法吗?