Korzystam z biblioteki getopt, chciałbym aby możliwe było uruchomianie programu z linii poleceń w następujący sposób:
./program -a 1 -b 2
po przełączniku -a oraz -b musi zostać podany argument
lub drugi sposób w jaki można uruchomić program:
./program -o
po przełączniku -o nie ma argumentów
pseudo kod wygląda tak:
while ((ch = getopt(argc, argv, "a:b:c")) != -1)
switch (ch)
{
case 'a':
// jakis kod
break;
case 'b':
// jakis kod
break;
case 'o':
// opcjonalny parametr
break;
case '?':
if (optopt == 'a' || optopt == 'b')
{
printf("-a i -b wymagaja podania argumentow");
exit(1);
}
else
{
printf("error\n");
exit(1);
}
break;
default:
printf("error\n");
exit(1);
}
if (argv[optind] == NULL || argv[optind+1] == NULL)
{
printf("wymagane -a i -b\n");
exit(1);
}
Obecnie program nie uruchamia się poprawnie dopóki nie podam parametru -o.
./program -a 1 -b 2
wypisuje:
wymagane -a i -b
Pomysły?