C语言解析命令行参数

news/2024/11/27 12:53:08/

原文地址: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 ) ;
}

编译测试:


http://www.ppmy.cn/news/1550355.html

相关文章

数据结构 (11)串的基本概念

一、串的定义 1.串是由一个或者多个字符组成的有限序列&#xff0c;一般记为&#xff1a;sa1a2…an&#xff08;n≥0&#xff09;。其中&#xff0c;s是串的名称&#xff0c;用单括号括起来的字符序列是串的值&#xff1b;ai&#xff08;1≤i≤n&#xff09;可以是字母、数字或…

嵌入式linux系统中图像处理基本方法

目录 2.1 BMP图像处理 2.1.1 BMP文件格式解析 2.1.2 代码实现:将BMP文件解析为RGB格式,在LCD上显示 2.2 JPEG图像处理 2.2.1 JPEG文件格式和libjpeg编译 2.2.2 libjpeg接口函数的解析和使用 2.2.3 使用libjpeg把JPEG文件解析为RGB格式,在LCD上显示 …

数据结构初阶---复杂度

一、数据结构前言 1.数据结构与算法 数据结构(Data Structure)&#xff1a;是计算机组织、存储数据的一种方式&#xff0c;指相互之间存在一种或多种特定关系的数据元素的集合。 算法(Algorithm)&#xff1a;就是定义良好的计算过程&#xff0c;他取一个或一组的值为输入&am…

ECharts图表导出为svg文件

在 ECharts 中使用 SVG 渲染并保存为本地文件,可以通过以下步骤实现: 1. 设置 ECharts 使用 SVG 渲染 在 ECharts 的配置中,可以通过设置 renderer 为 ‘svg’ 来启用 SVG 渲染。 var chart = echarts.init(document.getElementById(main)

虚拟浏览器可以应对哪些浏览器安全威胁?

众所周知&#xff0c;互联网安全对企业和个人都至关重要。 因此&#xff0c;在有害的网络内容和终端用户之间必须有一道屏障。浏览器隐私是浏览器安全的一个重要组成部分。不用说也知道&#xff0c;大多数常用的浏览器&#xff0c;都会把最终用户的数据出售给第三方&#xff0c…

[Redis#6] list | 命令 | 应用 | 消息队列 | 微博 Timeline

目录 List 列表 特点 2. 命令 头插和尾插 下标 range 查询 头删和尾删 LINSERT LLEN LREM LTRIM LSET 阻塞命令 BLPOP BRPOP 操作 总结 3. 内部编码 ziplist&#xff08;压缩列表&#xff09; linkedlist&#xff08;链表&#xff09; ✔️quicklist(快速链…

HarmonyOS Next元服务大学之道动卡互动

大学之道 各位大佬&#xff0c;纯血鸿蒙HarmonyOS NEX手机、平板&#xff0c;应用市场搜索“大学之道动卡”即可体验&#xff0c;打开留言即可发表你的文学观点,谢谢互动。 您也可以通过以下方式&#xff0c;打开“大学之道动卡”互动。

机器学习中输入输出Tokens的概念详解

随着深度学习技术的快速发展&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;已经成为自然语言处理&#xff08;NLP&#xff09;领域的一个热点研究方向。这些模型不仅能够生成高质量的文本&#xff0c;还能在多种任务中展现出卓越的表现&#xff0…