获得程序参数
Posted suwen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获得程序参数相关的知识,希望对你有一定的参考价值。
当一个用C语言编写的Linux程序运行时,它是从main函数开始的。main程序的声明可以如下:
int main(int argc, char *argv[])
其中argc是程序参数的个数,argv是一个代表参数自身的字符串数组。
在Linux中,我们一般使用shell命令运行一个可执行文件,例如:
$myprog left right ‘and center‘
程序myprog将从main函数开始,main带的参数是:
argc:4 argv:{"myprog", "left", "right", "and center" }
注意,参数的个数包含程序名自身。
在linux中,我们建议在应用程序中,所有的命令行开头都应以一个短横线开头,气候包含单个字母或数字。如果需要,不带后续参数的选项可以在一个短横线后归并到一起,例如“$ls -lstr”,如果该选项需要参数值,则该选项应独立使用,参数紧跟在该选项后。例如“gcc -o file file.c”
下面这个程序argc.c对其参数进行检查:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int arg; for(arg = 0; arg < argc; arg++) { if(argv[arg][0] == ‘-‘) printf("option: %s\n", argv[arg]+1); else printf("argument %d: %s\n", arg, argv[arg]); } exit(0); }
测试如下:
[email protected]:/home/anthony# ./args -i -lr ‘hi there‘ -f fred.c argument 0: ./args option: i option: lr argument 3: hi there option: f argument 5: fred.c
本例中,我们忽略了一种事实,就是-lr选项应该和-l -r一样处理。
以上是关于获得程序参数的主要内容,如果未能解决你的问题,请参考以下文章
片段(Java) | 机试题+算法思路+考点+代码解析 2023
xml Eclipse模板(代码片段)检查参数并最终抛出IllegalArgumentException