`
jinheking
  • 浏览: 77696 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

15年后再写getopt

阅读更多
import std.stdio;
import std.getopt;

/*
  * 本程序的目的是读取文件区分图片文件是gif、jpeg、png
  * @see https://github.com/katsumeshi/image-base64-rs/blob/master/src/lib.rs
  *   if Regex::new(r"^ffd8ffe0").unwrap().is_match(hex) { 
  *          return "jpeg" 
  *      } else if Regex::new(r"^89504e47").unwrap().is_match(hex) {  
  *          return "png" 
  *      } else if Regex::new(r"^47494638").unwrap().is_match(hex) { 
  *          return "gif"
  *      }  
  *
  */

/// main 
void main(string[] args)
{
    string ver;
    string imgFileName;
    void verHandler(string option)
    {
        writeln("版本是V0.0.1");
    }

    void imgHandler(string option,string value){
        writeln("图像文件名:",value);
    }
    auto helpInformation = getopt(
        args
        "version|v""版本号", &verHandler,
        "author"," Sunny"delegate() {writeln("Sunny");return;},
        "file|f""图像文件名", &imgHandler
        );

    if (helpInformation.helpWanted)
    {
        defaultGetoptPrinter("Some information about the program."helpInformation.options);
    }
}

 

0
0
分享到:
评论

相关推荐

    getopt源码下载及getopt_long源码下载

    在Linux和Unix-like操作系统中,命令行参数的解析是一个常见的任务,`getopt`函数库提供了处理这种问题的标准方法。`getopt`是C语言中用于解析命令行选项的一个库函数,它允许程序以结构化的方式处理命令行参数。...

    getopt.h getopt getopt_long

    win10 vs2019下的 getopt及getopt_long getopt/getopt_long函数是GNU C中的函数

    getopt.h getopt.c getopt getopt_long 字符串 命令行

    在C语言编程中,`getopt.h` 和 `getopt.c` 是两个非常重要的文件,它们主要用于处理命令行参数。`getopt` 是一个库函数,用于解析程序启动时的命令行选项,而 `getopt_long` 是 `getopt` 的扩展版本,增加了对长选项...

    getopt.h和cpp

    3. 如果选项需要一个参数(如 `-f filename`),`getopt` 会在找到选项后返回参数值,或者在找不到参数时给出错误提示。 4. 当所有选项都处理完毕,`getopt` 将开始返回 `EOF`,表示没有更多的选项。 在实际编程中...

    getopt.h getopt.c getopt_long 文件和函数说明

    `getopt.h` 和 `getopt.c` 是在C语言编程中处理命令行选项解析的两个关键文件。`getopt` 函数是C标准库的一部分,通常用于解析命令行参数,而`getopt_long` 是一个扩展功能,提供更方便的方式来处理长选项。 `...

    getopt源码,32,64库

    `getopt`是一个在许多Unix-like操作系统中广泛使用的命令行参数解析函数库。它使得程序能够解析命令行选项,按照标准的Unix风格处理 `-` 开头的单字符选项和 `--` 开头的长选项。这个库对于编写接受命令行参数的程序...

    在linux下的getopt源码

    当getopt遍历完所有的选项后,`optind`将指向非选项参数的起始位置。 3. **Optarg**: 另一个全局变量,存储了当前选项的参数值,如果有的话。例如,如果用户输入`-f file.txt`,`optarg`会被设置为`"file.txt"`。 ...

    RTMP可用的getOpt.h和getOpt.c

    在研究RTMP库的过程中,`getOpt.h`和`getOpt.c`文件是两个非常重要的组成部分,它们主要用于处理命令行参数。 `getOpt`函数是C语言中用于解析命令行选项的一个标准工具。在Linux或类Unix系统中,它是一个内置的...

    linux中getopt的用法

    ### Linux中Getopt的深入解析与应用 #### Getopt功能概览 `getopt`是Linux及类Unix系统中用于解析命令行参数的一个强大工具,它简化了程序开发者处理复杂命令行选项的工作,使得程序能够更加高效地识别并响应用户...

    getopt.h 头文件

    缺少getopt.h头文件的,将文件下载后,放在你创建的工程下,并包含进你的代码里可以了。很好用! 适合C与C++,编译出错的话,可以关闭编译器重新编译!

    getopt windows实现

    在Windows操作系统中,通常开发环境使用的是MSVC (Microsoft Visual C++) 或者其他与Windows API紧密集成的工具,而这些工具并不直接支持Linux中的`getopt`、`getopt_long`和`getopt_long_only`函数。这些函数是用于...

    C#getopt(命令行处理函数)

    添加引用后,使用范例如下: using CodePoints; using System; ... public static void Main ( string [] args ) { int c = 0, aflag = 0, bflag = 0; string cvalue = "(null)"; while ( ( c = GetOpt....

    命令行解析函数getopt用法详解

    当`getopt`函数在`while`循环中使用时,循环结束后,剩下的字符串视为操作数,在`argv[optind]`至`argv[argc-1]`中可以找到。 * `int opterr`:这个变量非零时,`getopt`函数为“无效选项”和“缺少参数选项,并输出...

    windows下的getopt/getopt_long等函数,vs2010实测可用

    GNU libc提供了getopt和getopt_long用于解析命令行参数,使用方便,但是windows环境没有提供。故将GNU libc提供的源码稍加修改,整理出了windows下可用的getopt和getopt_long。

    C++版本Windows命令行getopt参数类

    功能:C++命令行参数解析类...(控制台应用程序中使用)在 Windows 平台下使用 Linux 的 getopt, getopt_long, getopt_long_only 函数。压缩包内包含getopt.h,getopt.c和使用代码示例。在VS2010下编译通过,运行良好。

    getopt实验代码

    getopt实验代码

    getopt源文件

    4. 遍历非选项参数:当所有选项都被处理完后,`getopt`会返回`-1`,此时`argv[optind]`指向第一个非选项参数。 在`getopt`的源文件中,我们可以看到以下关键点: 1. `getopt`函数的实现:这部分代码负责解析`argv`...

    java-getopt-1.0.14.jar

    java-getopt-1.0.14.jar

    getopt在win32的实现(含源代码)

    `test.c`则是一个示例程序,展示了如何在Win32下使用移植后的`getopt`。 `ChangeLog`文件记录了代码的修改历史,对于理解代码的演变和修复的bug很有帮助。`LICENSE`文件规定了代码的使用许可条件,通常遵循开源协议...

    getopt的用法

    `getopt`是一个标准C库函数,用于解析命令行参数,尤其在编写需要处理命令行选项的程序时非常有用。它能帮助你避免手动检查`argv`数组来处理各种选项和参数。`getopt`函数定义在`unistd.h`头文件中。 函数`int ...

Global site tag (gtag.js) - Google Analytics