
getopt 라이브러리를 사용할 때 오류가 발생하는 이유는 인자 처리 옵션에 지정된 문자가 프로그램에 지정된 옵션에 포함되지 않았을 때입니다.
예를 들어, 위의 예제 프로그램에서 'a', 'b', 'c' 옵션만 처리하도록 지정했지만, '-d' 옵션을 지정했기 때문에 getopt 함수는 이 옵션을 처리할 수 없으므로 오류를 발생시킵니다.
해결 방법은 getopt 함수에 처리할 옵션을 모두 포함하거나, getopt 함수가 처리하지 않는 옵션을 처리하는 코드를 추가하는 것입니다.
예를 들어, 다음과 같이 처리하지 않는 옵션을 처리하는 코드를 추가할 수 있습니다.
#hostingforum.kr
c
#include
#include
int main(int argc, char *argv[]) {
int opt;
while ((opt = getopt(argc, argv, "abc")) != -1) {
switch (opt) {
case 'a':
printf("Option a is selectedn");
break;
case 'b':
printf("Option b is selectedn");
break;
case 'c':
printf("Option c is selectedn");
break;
default:
printf("Invalid optionn");
break;
}
}
// 처리하지 않는 옵션을 처리하는 코드
for (int i = optind; i < argc; i++) {
printf("Unknown option: %sn", argv[i]);
}
return 0;
}
이 코드에서는 getopt 함수가 처리하지 못한 옵션을 처리하는 코드를 추가하여 오류를 해결할 수 있습니다.
2025-03-12 07:09