关闭

写命令+选项

235人阅读 评论(0) 收藏 举报

我们用到的LINUX命令:list -l;

main函数:int main(int argc, char* argv[])
可以用int getopt(int argc,char * const argv[ ],const char * optstring);来解析main函数带入的选项,如:-l。

解析时:

    while ((c = getopt(argc, argv, "o:t:z:nr")) != -1) {//其中o:表示-o后面还有参数,参数放在optarg全局变量中。n,r没有其他参数了。
        switch (c)
        {
        case 'o':
            opt_str = strdup(optarg);
            if(strncmp((const char*)opt_str, VERONA_SCIT_UPGRADE_STRING, strlen(VERONA_SCIT_UPGRADE_STRING)) == 0)
            {
            }
            break;
        case 't':
            tgt_dev = strdup(optarg);
            printf("t Not implemented\r\n");
            break;
        case 'z':
            compress_srting = strdup(optarg);
            if(strstr(compress_srting, "tarlzma"))
                ;//CompressType = TYPE_TAR_LZMA;
            printf("z Not implemented\r\n");
            break;
        case 'n': // image file in Nand
            printf("[ImageFileInNand mode]\r\n");
            isImageFileInNand = 1;
            break;
        case 'r':
            isreboot = 0;
            break;
        default:
            ;//usage(progname);
        }

    }

    if(optind < argc)
    {
         file_path = argv[optind];//optind等于下一个argv指针。
    }

optarg——指向当前选项参数(如果有)的指针。 optind——再次调用 getopt() 时的下一个 argv 指针的索引。 optopt——最后一个未知选项。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:40111次
    • 积分:1142
    • 等级:
    • 排名:千里之外
    • 原创:73篇
    • 转载:25篇
    • 译文:0篇
    • 评论:1条
    最新评论