关于intmain(intargc,char*argv[])的一点小认识
初学C语言时写程序主函数用的都是清一色的main() { }形
式,似乎有它就足够了,甭管写什么程序一马当先把这玩意儿敲
上去作打算。也看过main()里面加参数的形式,但是当时嗤之以
鼻,只觉得没什么用处,还写一堆参数繁琐,就没再了解了。
最近学习linux C编程用到了intmain(intargc,char *argv[])这个
东西,才体会到了它的神奇之处,以前自己的想法太拙了。
初学C虽然写过了不少的小程序了,但是都是在编译软件上
写完运行一下跟玩玩似地,就算是那些上千行代码的学生管理系
统,超市管理系统之类的也只能局限于自己在软件上运行着自我
陶醉了,和其他设备也联系不到一块,所以始终没体会到C语言的
实际作用。而intmain(intargc,char*argv[])这个main函数,短短几行
代码就让我眼前一亮,看到了它的使用效果。这个函数是直接和
终端联系起来的。终端对于玩linux的人来说再熟悉不过了,只要
在终端执行命令就可以玩转计算机,可见他的强大,也类似于
windows下的dos。
这个函数就可以解析终端上输入的命令行参数,执行命令时,
需要它获取命令行参数,写一个命令时也需要它接受参数。
下来简单说说关于它的使用吧。
在intmain(intargc,char*argv[])中:
形参argc是记录命令行输入的参数个数;
形参argv[]是char *类型,是一个指针数组,指向的是字符
串,显然它是用来保存命令行输入的参数的,各个命令行参数是
用空格分隔的。
需要注意,程序要执行时都会生成一个可执行文件,可执行
文件名存在*argv[0]中,接下来的命令行参数依次保存在 *argv[1],
*argv[2] ......
便于理解用一个小程序来说明:
# include<stdio.h>
int main(int argc,char *argv[]) //argv ,存命令行参数
{
int n=argc; //argc 命令行中输入的参数个数
printf("参数个数 n= %d\n",n);
while(--n>=0)
{
printf("argv[%d]: %s\n", n,argv[n]);
//argv[0]表示 可执行文件名
}
return0;
}
可在windows下的dos中输入.exe的可执行文件名后操作。
以下是linux终端下运行的结果:
可以用这个main函数配合调用系统函数写一些小程序,实现
能在终端执行的自己的命令,比如查看文件的内容,文件的属性
等命令。