前言全局说明
c/c++识别减号参数 -h -c a.json
一、说明
二、参数解析
2.1 识别减号参数
文件名:c_argments.c
| |
| |
| |
| |
| |
| |
| |
| #include <stdio.h> |
| #include <errno.h> |
| #include <getopt.h> |
| #include <unistd.h> |
| |
| void usage(int argc, char **argv) |
| { |
| fprintf(stdout, "\nUsage: \n"); |
| fprintf(stdout, "\t%s [-h] [-c <config.json>] \n", argv[0]); |
| fprintf(stdout, "\tOptions: \n"); |
| fprintf(stdout, "\t -c json config file\n"); |
| fprintf(stdout, "\t -h help\n"); |
| fprintf(stdout, "\n"); |
| |
| _exit(0); |
| } |
| |
| int main(int argc, char **argv) { |
| |
| int ch; |
| char *infile = NULL; |
| |
| |
| while ((ch = getopt(argc, argv, "hc:")) != -1) { |
| switch(ch) { |
| case 'h': |
| usage(argc,argv); |
| break; |
| case 'c': |
| infile = optarg; |
| break; |
| default: |
| usage(argc,argv); |
| } |
| } |
| |
| if (optind > argc) { |
| fprintf(stderr, "[ ERROR ] optind, errno = %d\n", errno); |
| usage(argc,argv); |
| } |
| |
| if (!infile){ |
| fprintf(stderr, "[ ERROR ] infile, errno = %d\n", errno); |
| usage(argc,argv); |
| } |
| |
| fprintf(stdout, "\n[ INFO ] Input file: %s \n\n", infile); |
| } |
编译运行:
| gcc c_argments.c -o c_argments |
| ./c_argments -h |
| ./c_argments -c a.json |
运行效果:


1、 extern char* optarg ; 用于保存选项。
2、 extern int optind, 用来记录下一个检索位置。
3、 extern int opterr, 是否将错误的信息输出到stderr,为0时表示不输出。
4、 extern int optopt, 表示不在选项字符串optstring中的选项。
2.2
三、
3.1
3.2
四、
4.1
4.2
免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。
参考、来源:
https://www.cnblogs.com/GuanghuiLiu/p/9309513.html
https://blog.csdn.net/u014470361/article/details/84110216
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
2023-06-26 read: arg count