WEB开发网
开发学院操作系统Linux/Unix 使用 getopt() 进行命令行处理 阅读

使用 getopt() 进行命令行处理

 2008-11-13 08:31:44 来源:WEB开发网   
核心提示: -o outfile.html——将经过转换的文档写入到 outfile.html,而不是打印到标准输出,使用 getopt() 进行命令行处理(3), -v——进行转换时提供详细信息;可以多次指定,以提高诊断级别, getopt() 的使用

-o outfile.html——将经过转换的文档写入到 outfile.html,而不是打印到标准输出。

-v——进行转换时提供详细信息;可以多次指定,以提高诊断级别。

将使用其他文件名称来作为输入文档。

您还将支持 -h 和 -?,以打印帮助消息来提示各个选项的用途。

简单命令行处理: getopt()

getopt() 函数位于 unistd.h 系统头文件中,其原型如清单 3 中所示:

清单 3. getopt() 原型

int getopt( int argc, char *const argv[], const char *optstring );

给定了命令参数的数量 (argc)、指向这些参数的数组 (argv) 和选项字符串 (optstring) 后,getopt() 将返回第一个选项,并设置一些全局变量。使用相同的参数再次调用该函数时,它将返回下一个选项,并设置相应的全局变量。如果不再有识别到的选项,将返回 -1,此任务就完成了。

getopt() 所设置的全局变量包括:

optarg——指向当前选项参数(如果有)的指针。

optind——再次调用 getopt() 时的下一个 argv 指针的索引。

optopt——最后一个已知选项。

对于每个选项,选项字符串 (optstring) 中都包含一个对应的字符。具有参数的选项(如示例中的 -l 和 -o 选项)后面跟有一个 : 字符。示例所使用的 optstring 为 Il:o:vh?(前面提到,还要支持最后两个用于打印程序的使用方法消息的选项)。

可以重复调用 getopt(),直到其返回 -1 为止;任何剩下的命令行参数通常视为文件名或程序相应的其他内容。

getopt() 的使用

让我们对 getopt_demo 项目的代码进行一下深入分析;为了方便起见,我在此处将此代码拆分为多个部分,但您可以在可下载源代码部分获得完整的代码(请参见下载)。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 getopt 进行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接