C语言解析命令行参数

最近在读《LPBE》,学习了getopt函数,写了个小程序,练练手,记录如下:

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

int oc;
char* b_opt_arg;

int main(int argc, char** argv)
{
	while ((oc = getopt(argc, argv, "ab:cd:")) != -1)
	{
		switch (oc)
		{
			case 'a':
				printf("option a\n");
				break;

			case 'b':
				printf("option b: %s\n", optarg);
                break;

			case 'c':
				printf("option c\n");
                break;

			case 'd':
				printf("option d:%d\n", atoi(optarg));
                break;

			default:
				printf("unknown options\n");
				exit(EXIT_FAILURE);
		}
	}

	exit(EXIT_SUCCESS);
}

 

getopt函数的第三个参数表示可以接收的option字符串,如上例可以接收-a/-b/-c/-d四个option,其中b和d后面跟冒号,代表可以有option argument,测试如下:

./a.out -a -b "Hello" -c -d '123'

打印结果如下:

option a

option b:Hello

option c

option d:123


 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值