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这样带有选项的命令执行

时间: 2024-11-06 07:35:41

getopt 分析命令行参数 -n -t 1的相关文章

【转】getopt分析命令行参数

(一) 在Linux中,用命令行执行可执行文件时可能会涉及到给其加入不同的参数的问题,例如: ./a.out -a1234 -b432 -c -d 程序会根据读取的参数执行相应的操作,在C语言中,这个功能一般是靠getopt()这个函数,结合switch语句来完成的,首先来看下面的代码: #include <stdio.h>#include <unistd.h> int main(int argc,char *argv[]){  int ch;  opterr=0;    whil

getopt函数(分析命令行参数)

相关函数表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数.参数argc和argv是由main()传递的参数个数和内容.参数optstring 则代表欲处理的选项字符串.此函数会返回在argv 中下一个的选项字母,此字母会对应参数optstring 中的字母.如果选项字符串里的字母后接着冒号“:”,则表示还有相关的参

getopt(分析命令行参数)

ref:http://vopit.blog.51cto.com/2400931/440453 相关函数表头文件 #include<unistd.h>定义函数 int getopt(int argc,char * const argv[ ],const char * optstring);函数说明 getopt()用来分析命令行参数.参数argc和argv是由main()传递的参数个数和内容.参数optstring 则代表欲处理的选项字符串.此函数会返回在argv 中下一个的选项字母,此字母会对

getopt函数的使用——分析命令行参数

getopt(分析命令行参数) getopt(分析命令行参数) 短参数的定义 返回值 范例 getopt_long 相关函数表头文件 #include<unistd.h> 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); 函数说明 getopt()用来分析命令行参数.参数argc和argv是由main()传递的参数个数和内容.参数optstring 则代表欲处理的选项字符串.此函数会返回在argv中下一

boost 分析命令行参数

[cpp] view plaincopy #include <boost/program_options.hpp> #include <iostream> #include <vector> using namespace std; using namespace  boost::program_options; int main(int argc, char* argv[]) { string one ; // 外部变量 存储 参数one的值 vector<st

Python3+getopt解析命令行参数

一.说明 在学C语言的时候就知道可以通过argc获取命令行参数个数,可以通过argv获取具体参数.但自己写的程序获取到的参数一是没有键值形式二是写的参数不能乱序,和系统命令不太一样. 再往后点知道有getopt这个东西,但印象中尝试理解其用法很多次都没什么结果:最近又越来多写程序,再次感觉很有必要掌握. 这里以Python3为例演示getopt,python感觉就是C的封装,C的getopt应该也类似. 二.程序代码 此程序中设置-h/-n/-p三个选项,-h不带值-n和-p带值:三个参数设置等

Python 命令行参数和getopt模块详解

1.需求来源 有时候我们需要写一些脚本处理一些任务,可能根据不同的条件输入不同的命令,来完成不同的任务.能不能做到跟linux操作系统一样,看着更高大上一点呢? 答案当然是可以的啦!getopt能满足你的需求 先看个linux 中的系统命令吧:最终目的就是写出类似的脚本. 2.getopt介绍 getopt这个函数 就是用来抽取 sys.argv 获得的用户输入来确定执行步骤. getopt是个模块,而这个模块里面又有getopt 函数,所以getopt需要这样这样用. getopt.getop

MFC解析启动命令行参数——CCommandLineInfo类

MFC中CCommandLineInfo类被用于分析启动应用时的命令行参数. MFC应用一般都会在它的应用对象中使用函数InitInstance()创建这个类的一个本地实例.然后把该对象传给CWinApp::ParseCommandLine(),ParseCommandLine()又重复调用ParseParam()填充CCommandLineInfo对象.最后,CCommandLineInfo对象被传给CWinApp::ProcessShellCommand()来处理命令行参数和选项.所以我们会

【Python 命令行参数解析: optparse 模块】

大家在使用Python进行脚本开发时,经常需要通过终端交互的方式对Python的脚本模块进行调用.这时在 Python模块中提供基础的命令行参数支持是必不可少的.那么,在Python中我们如何实现命令行参数的传入和解析呢,如下内容将对此进行简要的介绍. Python对命令行参数解析的支持 Python中通过两个内建模块对命令行参数解析进行支持:getopt 和 optparse 两种内置支持 模块名 功能说明 getopt 对命令行参数进行简单的处理 optparse 能够对命令行参数进行复杂的