Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 操作系统 > Linux > getopt(分析命令行参数)
【标  题】:getopt(分析命令行参数)
【关键字】:getopt
【来  源】:http://www.cublog.cn/u/23224/showart.php?id=165387

getopt(分析命令行参数)

Your Ad Here
 
表头文件
#include<unistd.h>
定义函数
int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明
getopt()用来分析命令行参数。参数argc和argv是由main()传递的参数个数和内容。参数optstring 则代表欲处理的选项字符串。此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母。如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果getopt()找不到符合的参数则会印出错信息,并将全域变量optopt设为“?”字符,如果不希望getopt()印出错信息,则只要将全域变量opterr设为0即可。
返回值
如果找到符合的参数则返回此参数字母,如果参数不包含在参数optstring 的选项字母则返回“?”字符,分析结束则返回-1。
范例
#include<stdio.h>
#include<unistd.h>
int main(int argc,char **argv)
{
int ch;
opterr = 0;
while((ch = getopt(argc,argv,”a:bcde”))!= -1)
switch(ch)
{
case ‘a’:
printf(“option a:’%s’\n”,optarg);
break;
case ‘b’:
printf(“option b :b\n”);
break;
default:
printf(“other option :%c\n”,ch);
}
printf(“optopt +%c\n”,optopt);
}
执行

$./getopt –b
option b:b
$./getopt –c
other option:c
$./getopt –a
other option :?
$./getopt –a12345
option a:’12345’

在java中有时候也要用到命令行参数,而java中就没有这么好的函数可以直接读出选项的参数了。那么java中如何读取参数并就参数做相应的处理呢?

我以前看到过的一个方法是这样的。java中命令行参数是作为字符串存储在传递给main()函数的String数组中。先把字符串转换成StringBuff,然后用getnexttoken(),得到下一个字符标识,例如:如果-h help,那么这个函数可以先后得到-h和help,可以通过判断是否以"-"开头来区分选项和参数。在java中还有一个很有用的东西,那就是方法集对象,它可以把本类中的所有的方法用方法名记录下来,这样你就可以用和参数名相同方法名来定义方法。方法集对象在找到和某个方法名相同的参数是就用invoke()来调用相应的方法,你需要参数做什么就设置在这个方法里面。我以前看的那个程序是在方法中设置了布尔变量,来控制程序的流程。java中大概就是这么解析命令行参数的,可能有些地方表述得不清楚或者不对的,请大家指教。

欢迎大家留言,我每天都回来看。


我的第一次操作系统课:【上一篇】
今天心血来潮(我暂时这么说吧)搞了一下RH9下的多媒体应用:【下一篇】
【相关文章】
  • bash 内嵌命令 getopts 示例及说明
  • Linux下获取命令行参数——getopt
  • getopt在Python中的使用
  • Linux程序设计——用getopt处理命令行参数
  • 使用系统调用getopt简化对命令行参数的解析
  • 命令行参数解析器 -- win32版getopt
  • getopt()函数介绍
  • getopt()用法
  • [Perl]实用性很强的模块Getopt::Std和Getopt::Long
  • 向脚本传递参数-getopts
  • 【随机文章】
  • Php+MySql分页机制两种方案的比较测试
  • 住宿餐饮 - 会员消费管理系统
  • 如何向Alexa提交你的网站图片
  • 德累斯顿园区的利润循环
  • Windows 98安全防范基础教程
  • orapwd命令中entries参数的作用
  • [php]预定义变量(一) $_SERVER (附:获取当前URL地址例子)
  • linux-Vi使用方法(备查)
  • Java程序使用OCI驱动连接oracle数据库
  • 治疗皮肤过敏,莫陷入追求“一针见效”的误区!小儿皮肤过敏,小儿皮肤过敏症状,小儿皮肤过敏怎么办
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.