使用範例
#include <getopt.h>
struct option long_options[] = {
{ "help", 0, 0, 'h' },
{ "value", 1, 0, 'v' },
};
int c;
while ((c = getopt_long(argc, argv, "hv:", long_options, 0)) != -1) {
case 'h':
break;
case 'v':
if(!strcmp(optarg, "val")) {
val = atoi(argv[optind]);
break;
}
{ "help", 0, 0, 'h' }
的 'h' 為 下列 while 的 case 值
getopt_long(argc, argv, "hv:", long_options, 0)
getopt_long(argc, argv, "hv:", long_options, 0)
其中 “hv:” 的 ":" 這裡代表的是,使用 -v 時後面要接參數
while 內可使用的參數為
optarg:回傳參數後面帶的字串
optind:回傳 optarg 在 argv[index] 中的 index 數值
while 內可使用的參數為
optarg:回傳參數後面帶的字串
optind:回傳 optarg 在 argv[index] 中的 index 數值
參數也可下成 -v val2 val3 val4 -h
optarg 指到的是 val2
argv[optind] 即可指到 val2
argv[optind+1] 即可指到 val3
沒有留言:
張貼留言