当一个程序被执行时,使用exec的进程可以传递命令行参数给这个新的程序。这是UNIX系统外壳的普通操作的一部分。我们在前面章节中的很多例子里已经看到过。
看下面的例子:
- #include <stdio.h>
- int
- main(int argc, char *argv[])
- {
- int i;
- for (i = 0; i < argc; i++) /* echo all command-line args */
- printf("argv[%d]: %s\n", i, argv[i]);
- exit(0);
- }
$ ./a.out 123 hello good "bye bye"
argv[0]: ./a.out
argv[1]: 123
argv[2]: hello
argv[3]: good
argv[4]: bye bye
我们被ISO C和POSIX.1两者保证argv[argc]是一个空指针。这允许我们用另一种方式编码参数处理循环:
for (i = 0; argv[i] != NULL; i++)
阅读(514) | 评论(0) | 转发(0) |