(1)短参数一个连接号跟一个小写字母(或者大写字母,不过小写字母更便于用户的输入)
(2)长参数 两个连接号跟一个小写的字符串
使用这两种方式的结果完全一样,唯一的区别就在于使用"短格式"便于用户输入,使用"长格式"显示的更清晰.比如使用 -h 和 --help
GNU Coding Standards list the names of some commonly used command-line options.If you plan to provide any options similar to these,it's a good idea to use the names specified in the coding standards.这更便于用户的使用.您可以使用如下命令查看GNU/Linux Coding Standards
%info "(standards)User Interfaces"
在C/C++中解析命令参数:您可以使用GNU提供的一个库 getopt_long 可以解析长命令和短命令,您只要引入
要使用getopt_long您必须定义两个数据结构.第一个是一个字符串,里面列出的是所有可能的短命令,每个命令一个字符,如果某个使命需要额外参数的话就在这个字符的后面跟一个冒号,比如您的程序有效的参数有 -h ,-o filename,-v 您就可以使用下面这个字符串来表示ho:v
第二个数据结构就是一个标识长参数的,它必须是一个struct option的数组,这个数组的每个元素有四个字段,第一个是长参数的名称(不带两个连接号的字符串),第二个字段是一个数值,1表示需要额外参数,0表示不需要额外参数.第三个字段必须是NULL,第四个字段是一个字符,标识这个长命令对应的短参数名..并且这个数组的最后一个元素的四个字段必须都是空.比如:
const struct option long_options[]={
{"help",0,NULL,'h'},
{"output",1,NULL,'o'},
{"verbose",0,NULL,'v'},
{NULL,0,NULL,0},
};
当在处理需要额外参数的参数时您可以使用全局变量 optarg ,这是一个字符串,里面是子参数的字符内容。
chl_seu 于 2007-08-24 16:02:27发表:
:0L