首页 > 代码库 > getopt 分析命令行参数 -n -t 1
getopt 分析命令行参数 -n -t 1
在Linux中,我们常常用到 ls -l 等等之类带有选项项的命令,下面,让我们用C++来实现该类似的命令。
在实现之前,首先,我们来介绍一下一个重要函数:getopt()
表头文件 #include<unistd.h>
定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);
函数说明:
用来分析命令行参数。参数 argc 和 argv 是由 main() 传递的参数个数和内容。
参数 optstring为选项字符串, 告知 getopt()可以处理哪个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参数,全域变量optarg 即会指向此额外参数。
如果在处理期间遇到了不符合optstring指定的其他选项getopt()将显示一个错误消息,并将全域变量optarg设为“?”字符,如果不希望getopt()打印出错信息,则只要将全域变量opterr设为0即可。
C++实现例子:
int main(int argc, char **argv){ int flag = 0; int type = 0; int opt; while(1) { opt = getopt(argc, argv, "nt:"); if(opt == ‘?‘) exit(EXIT_FAILURE); else if(opt == -1) break; switch(opt) { case ‘n‘: /*printf("AAAAAAAAA\n");*/ flag |= IPC_NOWAIT; break; case ‘t‘: /*printf("BBBBBBBb\n"); int n = atoi(optarg); printf("n = %d\n", n);*/ type = atoi(optarg); break; } }}
编译完之后,我们可以使用:./a.out -n -t 1这样带有选项的命令执行
getopt 分析命令行参数 -n -t 1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。