Chinaunix首页 | 论坛 | 博客
  • 博客访问: 59180
  • 博文数量: 8
  • 博客积分: 199
  • 博客等级: 入伍新兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-10 15:42
文章分类

全部博文(8)

文章存档

2012年(8)

我的朋友

分类: LINUX

2012-06-14 21:27:18

    以前在读书的时候,一直不明白C语言中,main函数的参数使用,说得专业一点,就是命令行参数。后来参加工作后,才慢慢体会到,在读书的时候还在用TC2.0,现在想起来......闲话少说,还是举一个简单的例子来说明一下在Linux下,命令行参数是怎么传递的。
 
#include
int main(int argc,char *argv[])
{
 int i = 0;
 for(i = 0;i < argc;i++)
 {
  printf("argc[%d] = %s\n",i,argv[i]);
 }
 return(0);
}
     其中,argc为命令行参数的个数。argv[]中存放的是输入的参数。运行结果如下图所示。
 
    
 
     基中,参数之间用空格分开。从中可以看出命令行参数是怎样传递的。在Linux系统下,一般很少使用图形界面,尤其是在嵌入式中,一般的测试程序都使用像上面那样,使用直接编译生成的可执行文件。只不过使用的是交叉编译环境。
     比如,要运行一个串口测试程序,那么,串口需要配置很多参考,像串口号,波特率,数据拉,停止位,效验位等。那么,在使用命令行参数的时候,就显得特别方便了。假如我们的测试程序名为serial,使用串口0,波特率115200,8个数据位,一个停止位,无效验位。则使用如下桥口就可以了,#./serial ttyS0 115200 8 1 n,通过命令行参数,直接传递进去,由此可见,命令行参数的重要性与方便性。并且Linux有专门对命令行参数进行处理的函数:getopt_long()。关于getopt_long()函数的使用方法,可参考相关资料。
阅读(4797) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~