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

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

 2008-11-13 08:31:44 来源:WEB开发网   
核心提示: 在清单 4 中,可以看到系统演示程序所使用的系统头文件;标准 stdio.h 提供标准 I/O 函数原型,使用 getopt() 进行命令行处理(4),stdlib.h 提供 EXIT_SUCCESS 和EXIT_FAILURE,unistd.h 提供 getopt(),下面的清单 6 包

在清单 4 中,可以看到系统演示程序所使用的系统头文件;标准 stdio.h 提供标准 I/O 函数原型,stdlib.h 提供 EXIT_SUCCESS 和EXIT_FAILURE,unistd.h 提供 getopt()。

清单 4. 系统头文件

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

清单 5 显示了我所创建的 globalArgs 结构,用于以合理的方式存储命令行选项。由于这是个全局变量,程序中任何位置的代码都可以访问这些变量,以确定是否创建关键字索引、生成何种语言等等事项。最好让 main() 函数外的代码将此结构视为一个常量、只读存储区,因为程序的任何部分都可以依赖于其内容。

每个命令行选择都有一个对应的选项,而其他变量用于存储输出文件名、指向输入文件列表的指针和输入文件数量。

清单 5. 全局参数存储和选项字符串

struct globalArgs_t {
  int noIndex;        /* -I option */
  char *langCode;       /* -l option */
  const char *outFileName;  /* -o option */
  FILE *outFile;
  int verbosity;       /* -v option */
  char **inputFiles;     /* input files */
  int numInputFiles;     /* # of input files */
} globalArgs;
static const char *optString = "Il:o:vh?";

选项字符串 optString 告知 getopt() 可以处理哪个选项以及哪个选项需要参数。如果在处期间遇到了其他选项,getopt() 将显示一个错误消息,程序将在显示了使用方法消息后退出。

下面的清单 6 包含一些从 main() 引用的用法消息函数和文档转换函数的小存根。可以对这些存根进行自由更改,以用于更为有用的目的。

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

Tags:使用 getopt 进行

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