以前在读书的时候,一直不明白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()函数的使用方法,可参考相关资料。
阅读(4820) | 评论(0) | 转发(1) |