用另一个程序改变变量

时间:2014-04-09 17:59:41

标签: c variables system

我正在尝试让另一个程序修改我发送给它的变量。我对此的尝试如下:

#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并编译第二个程序,正如我上面所做的那样。 有什么想法吗?

0 个答案:

没有答案