下面命令将文件 a,拷贝成文件 b。
# cp a b
a 和 b,就是 cp 命令的命令行参数。
程序要感知到命令行参数,main 函数应该写成这样:
int main(int argc, char * argv[])
{
...
}
argc代表命令行参数的个数,包含命令本身。所以在上面拷贝的例子中,argc等于3。
argv是个指针数组,每个数组元素都是 char * 类型,以字符串的形式存储命令行参数。
argc和argv,都是操作系统在启动程序时,放入程序的堆栈中的。
例如,下面的程序打印出所有命令行参数。
#include <stdio.h>
int main(int argc, char * argv[])
{
for (int i = 0; i < argc; i++ ) { printf ("%s\n", argv[i]); }
return 0;
}
命令行参数以空格分隔,如果一个参数内部有空格,则用双引号括起来即可。如 "hello world" 代表一个参数。