后端实习笔记1

第一次实习,在CSDN中稍微记录一下学习到的东西。
在大学时常被长辈教导要好好写全main函数的参数argc和argv。

#include <stdio.h>
int main(int argc, char* argv[]){
   
	/* TODO xxxx */
	balabala;
	return 0;
}

虽然知道argc和argv的作用。但总觉得使用起来不方便,比如在windows中使用shutdown命令:

# 1min 后关机
shutdown -s -t 60
##上述命令在main函数中可以得到: 
# argc   = 4
# **argv = ["shutdown", "-s", "-t", "0"]。

通常命令中的-s、-t为可选参数,因此直接判断argv中的字符串进行操作较为不便。而最近查阅学习到的getopt()和getopt_long()函数能很有效地解决这个问题。

getopt()与getopt_long()

getopt()与getopt_long()在linux.die.net中有函数声明和介绍。其中声明如下:

#include <unistd.h>

int getopt(int argc, char * const argv[],
           const char *optstring);

extern char *optarg;
extern int optind, opterr, optopt;

#include <getopt.h>

int getopt_long(int argc, char * const argv[],
           const char *optstring,
           const struct option *longopts, int *longindex);

int getopt_long_only(int argc, char * const argv[],
           const char *optstring,
           const struct option *longopts, int *longindex);

可以发现声明的三种getopt函数中的3个参数是相同的。从命名上可以看出,前2个参数与main的2个参数相同,实际使用时直接将它们传入即可。
参数optstring是一个包含 字母a-z和冒号: 的字符串,在getopt函数中会根据传入的短参数(如-s)和optstring中的字母字符进行比对。

1. getopt()

下面以一个使用getopt()函数的代码为例:

/* 编译后生成名为test的可执行文件 */
#include <stdio.h>
#include <unistd.h>

int 
main(int argc, char* argv[])
{
   
	char* optstring = "ab:c::&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值