
	                	                 
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