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);
}


你可能感兴趣的:(getopt 實例)