命令解析函数getopt_long的用法
2011-05-19 20:21
309 查看
#include <stdio.h> #include <getopt.h> int do_name, do_gf_name; char *l_opt_arg; struct option longopts[] = { { "name", no_argument, NULL, 'n' }, { "gf_name", no_argument, NULL, 'g' }, { "love", required_argument, NULL, 'l' }, { 0, 0, 0, 0}, }; int main(int argc, char *argv[]) { int c; while((c = getopt_long(argc, argv, "l:", longopts, NULL)) != -1) { switch (c) { case 'n': printf("My name is LYR./n"); break; case 'g': printf("Her name is BX./n"); break; case 'l': l_opt_arg = optarg; printf("Our love is %s!/n", l_opt_arg); break; } } return 0; }此函数支持长短选项。当程序运行时,getopt()函数会设置控制错误处理的几个变量:
char *optarg ──如果选项接受参数的话,那么optarg就是选项参数。
int optind──argv的当前索引,当while循环结束的时候,剩下的操作数在argv[optind]到argv[argc-1]中能找到。
int opterr──当这个变量非零(默认非零)的时候,getopt()函数为"无效选项”和“缺少选项参数”这两种错误情况输出它自己的错误消息。可以在调用getopt()之前设置opterr为0,强制getopt()在发现错误时不输出任何消息。
int optopt──当发现无效选项的进修,getopt()函数或者返回'?'字符,或者返回字符':'字符,并且optopt包含了所发现的无效选项字符。
其中短选项中,带单冒号的表示必须有参数,且参数和选项之间用空格隔开;带双冒号的表示必须有参数,但参数不能和选项用空格隔开,不带冒号的表示选项不能有参数。
相关文章推荐
- 【Linux开发】常用命令行解析函数getopt/getopt_long
- 常用命令行解析函数——getopt/getopt_long
- linux 中解析命令行参数 (getopt_long用法)
- Linux函数getopt_long_only的两种用法
- 命令行参数解析函数getopt_long()
- 命令行选项解析函数(C语言):getopt()和getopt_long()
- C语言中getopt()和getopt_long()函数的用法
- linux 中解析命令行参数 (getopt_long用法)
- getopt_long函数基本用法-linux
- 命令行选项解析函数(C语言):getopt()和getopt_long()
- linux 中解析命令行参数 (getopt_long用法)
- linux 中解析命令行参数 (getopt_long用法)
- 命令行参数解析函数getopt_long() 使用详解
- linux 中解析命令行参数 (getopt_long用法)
- linux 中解析命令行参数 (getopt_long用法)
- linux解析命令行选项getopt_long用法解读
- linux 中解析命令行参数 (getopt_long用法)
- Linux命令选项及参数解析 getopt() getopt_long() 函数
- linux 中解析命令行参数 (getopt_long用法)
- linux中函数getopt_long用法解释