Разбор "?" в гетопт

void display(char * str){
   printf("%s: Missing file\n", str);
}

int main(int argc, char **argv)
{

    int longIndex, opt = 0;
    const char *optString = "h?";

    static const struct option longOpts[] = {
    { "help", no_argument, NULL, 'h' },
    { NULL, no_argument, NULL, 0 }
    };

    opt = getopt_long( argc, argv, optString, longOpts, &longIndex );
    while( opt != -1 ) {
        switch( opt ) {
            case 'h':
            case '?':
                display(argv[0]);
                break;

            default:
                break;
        }

        opt = getopt_long( argc, argv, optString, longOpts, &longIndex );
    }

        return 0;
}

Этот код компилируется нормально, но когда я запускаю его так:

./a.out ?

это не вызывает показ. Что мне не хватает?

Ответы на вопрос(2)

Ваш ответ на вопрос