getopt和getopt_long的使用

getopt的函数使用

1、需要头文件#include <unistd.h>,其函数原型为int getopt(int argc, char *const argv[], const char *optstring),调用中会用到外部变量

extern char *optarg表示选项的参数

extern int optind表示参数的下标,注意从1开始

2、optstring表示选项,选项后加:表示选项后必须带参数

3、函数返回值,返回的是选项,直到选项都扫描结束后,返回-1

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

int main(int argc, char **argv)
{
    int op;
    
   while ((op = getopt(argc, argv, "a:b:c:")) != -1)
    {
        switch (op)
        {
            case 'a':
                break;
            case 'b':
                break;
            case 'c':
                break;
        }
        printf("opt=%c, optind=%d, optarg=%s\n", op, optind, optarg);
    }
    return 0;
}

"${OUTPUT_PATH}" -a a -b b -c c

输出为:

opt=a, optind=3, optarg=a
opt=b, optind=5, optarg=b
opt=c, optind=7, optarg=c

getopt_long的使用

1、需要头文件#include <getopt.h>,函数原型为int getopt_long(int argc, char *const argv[], const char *optstring, const struct option* longopts, int* longindex);

2、struct option结构为

struct option

{

     const char *name;

     int has_arg;

     int *flag;

     int val;

};

flag表示长参数的返回方式。如果flag为NULL,返回的是val.否则,getopt_long返回0,option的flag值设置为val。

如果longindex不为空,其值指向option结构体数组的索引。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kgduu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值