在學習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);
}