W poniższym kodzie opisana jest prosta funkcja wywołania programu dla paru argumentów. Chciałbym się dowiedzieć w jaki sposób można pobrać też jakąś liczbę całkowitą podaną za literą wywołania i zapisać ją do zmiennej. Proszę o szybką odpowiedź bo czas mnie goni : c

#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
int opcja;
int zmienna;
int kod_powrotu=0;
char optstring[] = ":cvf:"; /* rozpoznawane opcje */
while ( (opcja = getopt(argc,argv,optstring)) != -1 )
switch ( opcja ) {
case 'c' :
/*zakładając że jest tu wywołana funkcja która wymaga podania przez użytkownika liczby, jak można ją pobrać? */
zmienna=getarg /*próbowałem takiego wywołania jednak nie działa ono, o ile optarg przechowuje podaną liczbę za -c to nie mogę z tego skorzystać*/
fprintf(stderr,"przetwarzam -c\n");
break;
case 'v' :
fprintf(stderr,"przetwarzam -v\n");
break;
case 'f' :
fprintf(stderr,"przetwarzam -f '%s'\n",optarg);
break;
case ':' : /* brakuje argumentu związanego z opcją */
fprintf(stderr,"opcja -%c wymaga argumentu\n",optopt);
kod_powrotu = 1; /* Wystapil blad */
break;
case '?' :
default :
fprintf(stderr, "opcja -%c nie znana – ignoruje\n", optopt);
kod_powrotu = 1; /* Wystapil blad */
break;
}
printf("Pozostale argumenty:\n");
for ( ; optind < argc; ++optind )
printf("argv[%d] = '%s'\n",optind,argv[optind]);
return kod_powrotu;
}