C语言解析命令行参数

原文地址:C语言解析命令行参数 -- 无敌牛

欢迎参观我的个人博客:无敌牛 -- 技术/著作/典籍/分享等

C语言有一个 getopt 函数,可以对命令行进行解析,下面给出一个示例,用的时候可以直接copy过去修改,很方便。

代码:

复制代码
//  main.c
//  gcc -Wall main.c

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

void usage(char* exec_file) {
    printf("\n");
    printf("Usage:\n");
    printf("\n");
    printf("%s options:\n", exec_file);
    printf(" -C, -c  指定配置文件,否则使用默认配置文件[/xxx/xxxx]\n");
    printf(" -F, -f  强制执行\n");
    printf(" -H, -h  打印此页面\n");
    printf("\n");
}


typedef struct _myargs_t{
    char config_path[1024] ;
    int f_flag ;
} myargs_t ;

int main(int argc, char* argv[]) {
    myargs_t myargs = {
        "/xxx/xxxx",
        0
    } ;
    char opt ;
    while ((opt = getopt(argc, argv, "C:c:FfHh")) != -1) {
        switch (opt) {
            case 'C':
            case 'c':
                printf("get options [%c] arg[%s]\n", opt, optarg) ;
                snprintf(myargs.config_path, sizeof(myargs.config_path), "%s", optarg) ;
                break;
            case 'F':
            case 'f':
                printf("get options [%c]\n", opt) ;
                myargs.f_flag = 1 ;
                break;
            case 'h':
            case 'H':
                usage(argv[0]);
                return 0 ;
            default:
                usage(argv[0]);
                printf("没有此选项[%c], 请重新选择!\n", opt);
                return 0;
        }
    }
    printf("config_path[%s]  f_flag[%d]\n", myargs.config_path, myargs.f_flag ) ;
}

编译测试:

相关推荐
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术16 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园16 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob16 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享16 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.16 天前
C语言--day30
c语言·开发语言
玖玥拾16 天前
C/C++ 数据结构(七)栈、容器适配器
c语言·数据结构·c++··容器适配器
何以解忧,唯有..16 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽16 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言