여러 인수를 사용할 수있는 C 프로그램이 있습니다. 여기에는 데이터 저장소와 디스크 모두에 공통 플래그 d
이 있습니다. d
으로 확인하기 전에 깃발을 순서대로 확인하고 store
값을 얻을 수있는 방법이 있습니까? 나는 s
를 확인하고이 루프 등C에 공통 플래그가있는 구문 분석 옵션
static void
ParseOptions(int argc, char* argv[])
{
int c, option_index;
int ind = 0;
while((c = getopt_long(argc, argv, "s:d:",
long_options, &option_index))!= -1) {
ind = optind;
switch(c) {
case 's':
optionStore = true;
store = strdup(optarg);
break;
case 'd':
if(strcmp(store,"datastore") == 0){
printf("In datastore\n");
datastore = strdup(optarg);
}
else if(strcmp(store,"disk") == 0){
printf("In disk\n");
disk = strdup(optarg);
}
break;
default:
exit(-1);
}
}
}
이것에 대해 이동하는 방법을 확실하지를 입력하려면이 전에 잠시 루프를 추가하는 등 다양한 방법을 시도했습니다.
가능한 중복 특정 순서?] (https://stackoverflow.com/questions/26473642/can-i-use-getopt-to-process-options-in-a-aqu-order) –
'case'에 플래그를 설정합니다. ':'와''d':'주 '에서 테스트하십시오 :'주의 :''d'가있을 때''s ''가 존재할 필요가 없으므로이 플래그에 대해 가능한 세 개의 ** ** 값이 있습니다. 본. – joop
모두 구문 분석을 마친 후에 호환성 옵션을 확인하십시오. –