static struct option long_options[] =
{
{"r", required_argument, 0, 'r'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};int option_index = 0;
char c;
while((c = getopt_long(argc, argv, "r:h", long_options, &option_index)) != -1)
{
switch(c)
{
case 'r':
break;
case 'h':
return EXIT_SUCCESS;
}
}
Как сделать h аргументом по умолчанию, так что если эта программа запускается без каких-либо аргументов, она будет выглядеть так, как будто она была запущена с -h?
Может быть, попробовать что-то вроде этого:
static struct option long_options[] =
{
{"r", required_argument, 0, 'r'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
int option_index = 0;
char c = getopt_long(argc, argv, "r:h", long_options, &option_index);
if (c == -1)
{
// display help...
return EXIT_SUCCESS;
}
do
{
switch(c)
{
case 'r':
break;
case 'h':
{
// display help...
return EXIT_SUCCESS;
}
}
c = getopt_long(argc, argv, "r:h", long_options, &option_index);
}
while (c != -1);
Или это:
static struct option long_options[] =
{
{"r", required_argument, 0, 'r'},
{"help", no_argument, 0, 'h'},
{0, 0, 0, 0}
};
int option_index = 0;
char c = getopt_long(argc, argv, "r:h", long_options, &option_index);
if (c == -1)
c = 'h';
do
{
switch(c)
{
case 'r':
break;
case 'h':
{
// display help...
return EXIT_SUCCESS;
}
}
c = getopt_long(argc, argv, "r:h", long_options, &option_index);
}
while (c != -1);
Почему бы не создать функцию printUsage и сделать что-то подобное.
if (c == 0) {
printUsage();
exit(-1);
}