首页 > 代码库 > getopt函数的用法
getopt函数的用法
Linux提供了一个解析命令行参数的函数。
#include <unistd.h> int getopt(int argc, char * const argv[], const char *optstring); extern char *optarg; extern int optind, opterr, optopt;
使用这个函数,我们可以这样运行命令
./a.out -n -t 100
n后面不需要参数,t需要一个数值作为参数。
代码如下:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <errno.h>#define ERR_EXIT(m) do { perror(m); exit(EXIT_FAILURE); }while(0)int main(int argc, char *argv[]){ int opt; while(1) { opt = getopt(argc, argv, "nt:"); if(opt == ‘?‘) exit(EXIT_FAILURE); if(opt == -1) break; switch(opt) { case ‘n‘: printf("AAAAAAAA\n"); break; case ‘t‘: printf("BBBBBBBB\n"); int n = atoi(optarg); printf("n = %d\n", n); } } return 0;}
当输入非法参数时,getopt返回’?’,当解析完毕时,返回-1.
如果需要参数,那么使用optarg获取,这是一个全局变量。
注意getopt的第三个参数”nt:”,说明可用的参数有n和t,t后面有一个冒号,说明t需要额外的参数。
运行结果如下:
5:30:22 wing@ubuntu msg ./getopt_test -nAAAAAAAA5:30:26 wing@ubuntu msg ./getopt_test -t ./getopt_test: option requires an argument -- ‘t‘5:30:31 wing@ubuntu msg ./getopt_test -t 100 1 ?BBBBBBBBn = 100
getopt函数的用法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。