说说 int main(int argc,char *argv[])两个命令行参数

最近看unix高级环境编程这本书,又看到了命令行参数这个东西,不禁让我想起最初对这两个参数的摸索过程来

大学里面接触的c语音应该是从谭浩强那本书开始的,当然里面的main函数中基本上不会带有 argc,argv两个命令行参数的,所以当我从图书馆借来参考资料惊奇的发现了不一样的入口main函数的形式时,当初非常的疑惑,不清楚这两个参数是什么意思,而且很多实例中都用到了这两个参数,但是却始终没有弄清楚这两个参数中的值是怎样赋值的,当然所有的那些用到这些参数的示例在我机器上就没有运行成功过,永远都在 if( argc<2) return 0;这里返回了,当初是那么傻,正好当初是开了java课程,所以我就抱着疑问问了下java老师,结果是悲剧的,她支支吾吾了半天也没说清楚这两个是什么东西,该怎么用,又再次加剧了我对这两个参数的神秘感,后来选了c++课程,也就没有再去整c了,这两个参数的问题就一直搁在那里...

其实这里我不想对教科书或者老师评价什么,因为整个教育就是这样,我这里讨论也没多大意义,比较学校只是引导学习的地方,我现在倒是弄清楚了为什么刚开始学c看到这两个参数会非常疑惑的原因了

1.那时学习c语音的环境都是在windows下的turbo c,能更高级点的就是vc6.0了,这两个IDE,根本让你接触不到这两个参数,命令行参数,顾名思义就是程序在命令行执行带入的参数了

2.现在感觉c就是为unix而诞生的,当然实际现在c的主要运用还是在unix相关平台上,不说现在很多unix相关操作系统有这非常炫丽的桌面系统比如ubuntu,但是回顾unix的历史,基本上命令行操作还是unix平台的主要操作

3.暂时还没想着

 

其实下面这个小程序就能很直白的说明这两个参数了(windows下)

 

#include<stdio.h>

int main(int argc,char *argv[])

{

for( int i=0; i<argc; ++i )

{

printf("argv[%d]: %s/n",i,argv[i]);

}

return 0;

}

 

保存test.c然后编译成test.exe,拷贝test.exe到目录D:/,然后在运行中输入cmd打开命令窗口,输入D:回车定位到d:根目录下,输入  test.exe 1 2 3 4,中间用空格隔开,看看输出结果,我想再怎么不明白的也明白了(自己当初悲剧的捣鼓了半天),其实argc就是命令参数个数,argv就是各个命令参数

命令行参数实际应用,主要是针对linux下服务器程序,相对于配置表的作用,对应windows以桌面系统应用比较少,所以相关介绍也比较少了

你可能感兴趣的:(java,c,windows,unix,ubuntu,平台)