命令行参数
在C中,获取用户输入的命令行参数是很方便的。程序的主函数会接受一个argv参数。有许多高级的库函数都会用到argv结构,所以了解此结构对一个C程序员来说将是很有用的。
请录入并编译下面的程序:
#include
int main(int argc, char *argv[])
{int x;printf("%dn",argc);for (x=0; x prinff("%s
n",argv[x]); return 0;}
本程序中,主函数接受两个参数:argv和argc。其中argv是一个字符串指针数组,它们指向从UNIX命令行运行程序时输入的参数。而argc即为参数的个数。上面这段代码会打印所有的命令行参数。作为试验,请把程序编译生成的可执行文件命名为aaa,然后键入aaa xxx yyy zzz运行程序。程序将会分行打印出命令行参数xxx、yyy 和 zzz。
char *argv[]是一个字符串指针数组。换句话说,数组的每个元素是一个指针,指针指向一个字符串(严格说是字符串的第一个字符)。所以,argv[0]指向的字符串即命令行的第一个参数(程序名),argv[1]指向第二个参数,以此类推。argc表示数组中有多少指针是有效的。由此可见,上面的程序只是打印了argv指向的每个有效字符串而已。
使用argv您可以很方便地让程序对用户输入的命令行参数作出响应。例如,您可以让程序在检测到程序名后第一个参数是help时,将帮助信息输出到标准输出设备。还可以把文件名作为参数传入程序供fopen等函数使用。