c/c++语言识别减号横杠参数 -h -c a.json

前言全局说明

c/c++识别减号参数 -h -c a.json


一、说明


二、参数解析

2.1 识别减号参数

文件名:c_argments.c

// file name:
// c_argments.c
// Data:
// 2024/06/26
// Link:
// https://www.cnblogs.com/wutou/p/18268295
#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

运行效果:
image

image

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



posted @   悟透  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2023-06-26 read: arg count
点击右上角即可分享
微信分享提示