getopt 實例


在學習pthread相關的函數時用到了getopt(),記得以前在在開源項目中也用到了,再次做個記錄,該例子來在於man  3 getopt 。


用來獲取命令行的選項和參數,是個很好的例子:


robin@ubuntu:~/workspace/c_workspace/thread$ cat opt.c
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>


int main(int argc, char **argv, char ** envp){
    int flags, opt;
    int nsecs, tfnd;
    
    nsecs = 0;
    tfnd = 0;
    flags = 0;
    while ((opt = getopt(argc,argv,"nt:")) != -1){
         switch (opt){   
             case 'n':
                 flags = 1;
                 break;
             case 't':
                 nsecs = atoi(optarg);
                 tfnd = 1;
                 break;
             default:
                 fprintf(stderr, "Usage: %s [-t nsecs] [-n] name\n", argv[0]);
                 exit(EXIT_FAILURE);
         }
    }
    printf("flags=%d; tfnd=%d; optind=%d\n", flags, tfnd, optind);

    if (optind >= argc){
        fprintf(stderr, "Expected argument after options\n");
        exit(EXIT_FAILURE);
    }
    printf("name argument = %s\n", argv[optind]);
    exit(EXIT_SUCCESS);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值