假设有一程序 testopt,其命令行选项参数有:
  -i            选项
  -l            选项
  -r           选项
  -n <值> 带关联值的选项
则处理参数的代码如下:
#include <stdio.h>
#include <unistd.h> int main(int argc, char *argv[]) {
// 选项参数
int opt;
while ((opt = getopt(argc, argv, ":in:lr")) != -) {
switch (opt) {
case 'i': // 开关选项
case 'l':
case 'r':
printf("option: %c\n", opt);
break;
case 'n': // 提供供了所需关联值的选项
printf("value of option %c: %s\n", opt, optarg);
break;
case ':': // 缺乏所需关联值的选项,选项字符在全局变量 optopt 中
printf("option needs a value: %c\n", optopt);
break;
case '?': // 未知选项
printf("unknown option: %c\n", optopt);
break;
}
}
// 其余参数(非选项),由全局变量 optind 指出开始位置
while(optind<argc) {
printf("argument: %s\n", argv[optind]);
++optind;
}
return ;
}
输入命令行:
$ ./testopt abc.txt -il -r -p -n18 myfile.c xyz
 
输出:
option: i
option: l
option: r
unknown option: p
value of option n: 18
argument: abc.txt
argument: myfile.c
argument: xyz
 
可以看到,getopt()已经把命令行参数重新排序,非选项参数都挪到了后面。

使用getopt()处理命令行参数的更多相关文章

  1. 【转】getopt分析命令行参数

    (一) 在Linux中,用命令行执行可执行文件时可能会涉及到给其加入不同的参数的问题,例如: ./a.out -a1234 -b432 -c -d 程序会根据读取的参数执行相应的操作,在C语言中,这个 ...

  2. getopt 分析命令行参数 -n -t 1

    在Linux中,我们常常用到 ls -l 等等之类带有选项项的命令,下面,让我们用C++来实现该类似的命令. 在实现之前,首先,我们来介绍一下一个重要函数:getopt() 表头文件 #include ...

  3. getopt解析命令行参数一例:汇集多个服务器的日志

    高效工作的一个诀窍就是尽可能自动化, 简便化. 比如, 公司里, 要搜索多个集群下的应用日志来排查问题, 需要使用 pssh: pssh -i -h api_hangzhou.iplist " ...

  4. Python3+getopt解析命令行参数

    一.说明 在学C语言的时候就知道可以通过argc获取命令行参数个数,可以通过argv获取具体参数.但自己写的程序获取到的参数一是没有键值形式二是写的参数不能乱序,和系统命令不太一样. 再往后点知道有g ...

  5. getopt函数的使用——分析命令行参数

    getopt(分析命令行参数) getopt(分析命令行参数) 短参数的定义 返回值 范例 getopt_long 相关函数表头文件#include<unistd.h> 函数声明int g ...

  6. php 命令行参数

    getopt (PHP 4 >= 4.3.0, PHP 5, PHP 7) getopt — 从命令行参数列表中获取选项 说明 array getopt ( string $options [, ...

  7. 如何获取PHP命令行参数

    使用 PHP 开发的同学多少都会接触过 CLI 命令行.经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET . POST 一样为这些命令行脚本提供参数. ...

  8. [转]Python 命令行参数和getopt模块详解

    FROM : http://www.tuicool.com/articles/jaqQvq 有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Pyt ...

  9. Python 命令行参数和getopt模块详解

    有时候我们需要写一些脚本处理一些任务,这时候往往需要提供一些命令行参数,根据不同参数进行不同的处理,在Python里,命令行的参数和C语言很类似(因为标准Python是用C语言实现的).在C语言里,m ...

随机推荐

  1. java keytool证书工具使用小结

    java keytool证书工具使用小结 在Security编程中,有几种典型的密码交换信息文件格式: DER-encoded certificate: .cer, .crt    PEM-encod ...

  2. Redis 缓存 + Spring 的集成示例

    参考网址:http://blog.csdn.net/defonds/article/details/48716161

  3. IT学习网站集结

    IT的学习网站: 慕课网   http://www.imooc.com 51CTO   http://www.51cto.com/ CSDN    http://www.csdn.net/ 极客   ...

  4. div赋值,取值和input赋值,取值

    一.div取值 <div id="txtXiaofei" class="txt-panel">你好</div> 获取div的值$(&qu ...

  5. Highchart URL

    http://www.highcharts.com/stock/demo/flags-general http://www.codesec.net/view/217265.html http://js ...

  6. Java使用正则表达式取网页中的一段内容(以取Js方法为例)

    关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串 ...

  7. CentOS 6 安装 MySQL-python

    yum install -y mysql-devel python-devel python-setuptools pip install MySQL-python

  8. java多线程详解(5)-Threadlocal用法

    ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路. 使用这个工具类可以很简洁 ...

  9. php获取数据库中数据,转成json数据

    <?php //需要执行的SQL语句 //单条 $sql="select * from xinwen"; //多条数据 //$sql="select id,name ...

  10. FreeSWITCH 1.2.5.3 Step by Step Install

    Ubuntu: apt-get -y install build-essential automake autoconf git-core wget libtool apt-get -y instal ...