getopt函数

本文深入解析getopt函数,展示如何通过此函数分析命令行参数,包括参数argc和argv的使用,以及optstring的配置方法。文章通过一个示例程序演示了getopt函数的常见用法,包括处理选项和参数,以及如何避免错误信息的输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         函数说明 getopt()用来分析命令行参数。参数argc和argv分别代表参数个数和内容,跟main()函数的命令行参数是一样的。参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optopt设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。

         该函数是读wpa_supplicant源码的main函数里面得到的一个例子,觉得用起来挺好玩的。

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

int main(int argc, char *argv[])
{
    int ch;
    opterr = 0;

    for (;;)
    {
		ch = getopt(argc, argv,
			   "a:bc:C:D:de:f:g:G:hi:I:KLMm:No:O:p:P:qsTtuvW");
		if (ch < 0)
			break;

        switch(ch)
        {
            case 'a':
                printf("option a:’%s’\n",optarg);
                break;
            case 'b':
                printf("option b :b\n");
                break;
            default:
                printf("other option :%c\n",ch);
        }
        printf("optopt +%c\n",optopt);
    }
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值