`

命令行参数处理

阅读更多
http://www.ibm.com/developerworks/cn/aix/library/au-unix-getopt.html

http://hi.baidu.com/harite/blog/item/2ad9aaec43f87b3d2697913d.html

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

struct Student
{
    int id;          
    char *name;      
};

//  optSting是选项参数组成的字符串,
//  字符后跟一个冒号,表明该选项要求有参数。
static const char *optString = "i:n:h?";

//  option结构称为长选项表,其声明如下:
//struct option {           //  四个域分别是
//    const char *name;     //  --长指令
//    int has_arg;          //  required_argument 1:带参数     no_argument       0:不带参数
//    int *flag;            //  NULL
//    int val;              //  -短指令
//};    
//  option结构数组,最后以 { NULL, no_argument, NULL, 0} 结束

static const struct option longOpts[] = {
    { "id", required_argument, NULL, 'i'},
    { "name", required_argument, NULL, 'n'},
    { "help", no_argument, NULL, 'h'},
    { NULL, no_argument, NULL, 0}
};

void Help( void )
{
    puts( "Help: \n  not help~" );
    exit( EXIT_FAILURE );
}

int main( int argc, char *argv[] )
{
    struct Student boy = {0,NULL};

    int opt;
    while ( (opt = getopt_long(argc,argv,optString,longOpts,NULL )) != -1 )
    {
        switch ( opt )
        {
            case 'i':
                boy.id = atoi(optarg);
                break;

            case 'n':
                boy.name = optarg;
                break;

            case 'h': 
            case '?':
                Help();
                break;
            default: break;
        }
    }

    printf( "id: %d\n", boy.id );
    printf( "name: %s\n", boy.name );

    return EXIT_SUCCESS;
}



分享到:
评论

相关推荐

    MFC中命令行参数处理的实现.pdf

    ### MFC中命令行参数处理的实现 #### 概述 在Microsoft Foundation Classes (MFC)框架中,处理命令行参数是一项重要的功能,它能够帮助应用程序解析来自用户的输入,并根据这些输入执行相应的操作。本文旨在深入...

    Go语言命令行参数处理:flag包的高效应用

    ### Go语言命令行参数处理:flag包的高效应用 #### Go语言概述 Go语言,亦称Golang,是由Google开发并开源的一种静态类型、编译型的语言。它旨在提高编程效率,尤其关注解决多核处理器上的性能问题。Go语言的设计...

    nodejs命令行参数处理模块commander使用实例.doc

    nodejs命令行参数处理模块commander使用实例.doc

    WPf命令行参数事例

    1. **设置命令行参数处理**: 在`App.xaml.cs`中,找到`OnStartup`方法。这个方法在应用程序启动时被调用,我们可以在其中获取命令行参数。默认情况下,`StartupEventArgs`对象的`e.Args`属性包含了所有传递给程序...

    getopt-php, 用于 命令行 参数处理的PHP库.zip

    getopt-php, 用于 命令行 参数处理的PHP库 GetOpt.PHP GetOpt.PHP 是命令行参数处理的库。 它支持PHP版本 5.4和更高版本。特性同时支持短( ( -v ) ) 和长( 例如。 --version ) 选项选项别名。IE 。选项既

    Go-go-smart-config这是一个零配置的配置文件加载模块和命令行参数处理模块

    go-smart-config这是一个【零配置】的配置文件加载模块和命令行参数处理模块

    Python命令行参数处理及argparse应用实例(包含详细的完整的程序和数据)

    此项目利用argparse处理命令行参数,收集用户信息并将其存储在文本文件中。在此过程中,还详细阐述了argparse的各种配置与使用注意事项。 适合人群:具有一定Python基础的开发初学者或从事系统编程的技术工作者。 ...

    最新commons-cli,解析命令行参数

    总的来说, Commons CLI 1.4 是一个强大且易用的库,能够简化命令行参数处理,让开发者专注于应用程序的核心逻辑,而无需花费大量时间去编写解析代码。无论是简单的命令行工具还是复杂的系统,它都能提供灵活的支持...

    nodejs命令行参数处理模块commander使用实例.docx

    在Node.js开发中,命令行参数的处理是一个常见的需求,特别是在构建CLI工具时。`commander`是一个强大的命令行选项解析模块,它使得处理命令行参数变得简单且具有可读性。下面我们将深入探讨`commander`的使用方法和...

    mfc读取命令行参数

    为了保持代码的清晰和可维护性,最好将命令行参数处理逻辑封装在一个单独的函数中,这样当需要添加或修改参数时,可以方便地在该函数中进行调整。 总之,MFC提供了强大的工具来处理命令行参数,这在很多情况下非常...

    让VC++ MFC支持命令行参数commandline

    在这些情况下,标准的WinMain函数被MFC框架封装,我们需要找到合适的地方来处理命令行参数。 MFC应用程序使用CWinApp派生类的InitInstance方法来初始化应用程序。因此,在对话框或单文档应用程序中,我们需要在...

    命令行参数.zip

    在压缩包文件“命令行参数.zip”中,可能包含了用于演示如何处理命令行参数的Python脚本(如`arg1.py`和`arg2.py`),以及与之相关的示例图片。这些脚本可能展示了如何解析和处理不同类型的参数,例如使用`argparse`...

    易语言源码易语言取进程映像路径及命令行参数.rar

    2. 命令行参数处理:在易语言中,程序启动时的命令行参数通常在程序的主入口点(如`程序开始`事件)中被处理。开发者需要编写代码来解析这些参数,并根据参数内容来调整程序的行为。 3. 系统接口调用:为了获取进程...

    VB程序接收命令行参数

    下面是一个简单的例子,展示如何在VB程序中处理命令行参数: ```vb Module Module1 Sub Main() ' 获取命令行参数的数量 Dim argCount As Integer = My.Application.CommandLineArgs.Count ' 遍历参数集合 For...

    nodejs命令行参数处理模块commander使用实例

    因此,Node.js社区出现了一些模块来简化命令行参数处理,其中一个非常流行的模块就是commander。 commander是一个为Node.js项目打造的命令行参数解析器,它使得定义命令行接口变得简单。它能够解析命令行参数,生成...

    Gzip命令行参数用法.ppt

    在命令行参数处理中,`main`函数是程序的起点,它通过`getopt_long`函数解析命令行参数。例如,`gzip.exe –d –N test.txz`中的`-d`表示解压缩,`-N`保留文件名和时间戳,`test.txz`是待解压的文件。`basename`函数...

    Python-easyargs一个python模块用于轻松处理命令行参数

    在Python编程中,命令行参数处理是不可或缺的一部分,特别是在创建脚本或命令行工具时。`easyargs`是一个专门设计用于简化这一过程的模块。它为开发者提供了方便、直观的接口,使得设置和解析命令行参数变得轻而易举...

    一个用于命令行参数处理PHP库-PHP开发

    Getopt.PHP Getopt.PHP是用于命令行参数处理的库。 它支持PHP 5.3及更高版本。 功能支持短(例如-v)和长(例如--version)选项选项别名,即。 GetOpt.PHP GetOpt.PHP是用于命令行参数处理的库。 它支持PHP 5.4及更...

    用Google的gflags优雅的解析命令行参数 _ 狮子牛1

    总的来说,gflags提供了一种简洁、高效的命令行参数处理机制,使得C++程序能够更好地适应各种配置需求,简化了用户对程序的定制和调试过程。通过cmake构建,gflags库也能方便地融入到现代C++项目的构建流程中。

    04GFLAGS-命令行参数解析的作用-windows

    GFLAGS是Google开发的一个命令行参数处理库,它在Caffe中用于解析和管理命令行参数,帮助用户定制和控制Caffe的运行行为。 首先,让我们深入理解GFLAGS的工作原理。GFLAGS库允许开发者定义一系列全局变量,这些变量...

Global site tag (gtag.js) - Google Analytics