对 exec 传送变量的访问

任何被 exec 调用所执行的程序,都可以访问 exec 调用中的参数。这些参数是调用 exec的程序传送给它的。我们可以通过定义程序 main()函数的参数来使用这些参数,方法如下:

 

main( int argc, char* argv[] );

 

这对于大多数人来说应该是熟悉的,这种方法就是 C 语言程序访问命令行参数的方法。这也显示了 shell 本身就是使用 exec 启动进程的。

 

 

被调用的程序:

#include <stdio.h>

int main(int argc,char* argv[])
{
        printf("argc=%d\n",argc);
        while(--argc>=0)
        {
                printf("%s \n",argv[argc]);
        }
        return 0;
}

 

调用程序:

#include <stdio.h>
#include <unistd.h>

int main(void)
{
        char* c[] = {"aaa","bbb","ccc"};

        execv("/haha/160331/target",c);

        return 0;
}