对exec传送变量的访问

任何被exec调用所执行的程序,都可以访问exec调用中的参数。这些参数是调用exec的程序传送给它的。我们可以通过定义

程序main()函数的参数来使用这些参数。方法如下:

    main(int argc,char *argv[])

   这对于大多数人来说应该是熟悉的,这种方法就是C语言程序访问命令行参数的方法。

这也是显示了shell本身就是使用exec启动进程的。

   以上说明的mian()函数中,argc是参数计数器,argv指向参数数组本身,所以,用execvp()执行一个程序,如下所示:

    char *argin[]={"command","with","argument",NULL};

    当程序启动后,它取得的argc和argv之值如下:

 

                 argc=3;

                 argv[0]="command";

                 argv[1]="with";

                 argv[2]="argument";

                 argv[3]=NULL;

    为了进一步说明这种参数传递技术,请考虑下列程序showarg:

           #include <stdio.h>

            main(int argc,char *argv[])

           {

                while(--argc > 0)

                      {

                              printf("%s",*(++argv));

                              printf("/n");

                      }

           }

           这个程序的工作就是把它的参数(除第一个参数外)的值传送到标准输出,如果用如下程序段来调用showarg的话,则

     其argc参数为3,输出结果为:“hello world”.

                                char *argin[]={"shwoarg","hello","world",NULL};

                                execvp(argin[0],argin);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值