进程环境之命令行参数

当执行一个程序时,调用exec的进程可将命令行参数传递给该新进程。这是UNIX shell的一部分常规操作。

程序清单7-3 将所有命令行参数回送到标准输出

[root@localhost apue]# cat prog7-3.c
#include "apue.h"

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

        for(i=0; i<argc; i++)   /* echo all command-line args */
                printf("argv[%d]: %s
", i, argv[i]);
        exit(0);
}

执行结果:

[root@localhost apue]# ./prog7-3 arg1 TEST foo
argv[0]: ./prog7-3
argv[1]: arg1
argv[2]: TEST
argv[3]: foo

ISO C和POSIX.1都要求argv[argc]是一个空指针。这就使我们可以将从参数处理循环改写为:

for ( i = 0; argv[i] != NULL; i++ )

 

本篇博文内容摘自《UNIX环境高级编程》(第二版),仅作个人学习记录所用。关于本书可参考:http://www.apuebook.com/

原文地址:https://www.cnblogs.com/nufangrensheng/p/3507949.html