红联Linux门户
Linux帮助

Linux中程序的参数

发布时间:2007-08-23 12:09:55来源:红联作者:rganizati
  Linux中命令的参数有两种形式:

  (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 ,这是一个字符串,里面是子参数的字符内容。
文章评论

共有 1 条评论

  1. chl_seu 于 2007-08-24 16:02:27发表:

    :0L