getopt Örneği
Önceki getopt Sonraki
getopt Örneği
Bu bölümde getopt işlevinin tipik kullanımını gösteren bir örneğe yer verilmiştir. Önemli noktalar şunlardır:
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int
main (int argc, char **argv)
{
  int aflag = 0;
  int bflag = 0;
  char *cvalue = NULL;
  int index;
  int c;

  opterr = 0;

  while ((c = getopt (argc, argv, "abc:")) != -1)
    switch (c)
      {
      case 'a':
        aflag = 1;
        break;
      case 'b':
        bflag = 1;
        break;
      case 'c':
        cvalue = optarg;
        break;
      case '?':
        if (optopt == 'c')
          fprintf (stderr, "-%c seçeneği bir argüman gerektirir.\n", optopt);
        else if (isprint (optopt))
          fprintf (stderr, "`-%c' seçeneği bilinmiyor.\n", optopt);
        else
          fprintf (stderr,
                    "Seçenek karakteri `\\x%x' bilinmiyor.\n",
                    optopt);
        return 1;
      default:
        abort ();
      }

  printf ("aflag = %d, bflag = %d, cvalue = %s\n",
          aflag, bflag, cvalue);

  for (index = optind; index < argc; index++)
    printf ("Seçenek olmayan argüman: %s\n", argv[index]);
  return 0;
}
Yazılımın değişik komut satırı seçenekleriyle çalıştırılmasıyla alınan bazı sonuçlar:
$ testopt
aflag = 0, bflag = 0, cvalue = (null)

$ testopt -a -b
aflag = 1, bflag = 1, cvalue = (null)

$ testopt -ab
aflag = 1, bflag = 1, cvalue = (null)

$ testopt -c foo
aflag = 0, bflag = 0, cvalue = foo

$ testopt -cfoo
aflag = 0, bflag = 0, cvalue = foo

$ testopt arg1
aflag = 0, bflag = 0, cvalue = (null)
Seçenek olmayan argüman: arg1

$ testopt -a arg1
aflag = 1, bflag = 0, cvalue = (null)
Seçenek olmayan argüman: arg1

$ testopt -c foo arg1
aflag = 0, bflag = 0, cvalue = foo
Seçenek olmayan argüman: arg1

$ testopt -a -- -b
aflag = 1, bflag = 0, cvalue = (null)
Seçenek olmayan argüman: -b

$ testopt -a -
aflag = 1, bflag = 0, cvalue = (null)
Seçenek olmayan argüman: -
Önceki Üst Ana Başlık Sonraki
getopt Kullanımı Başlangıç getopt_long ile Uzun Seçeneklerin Çözümlenmesi
Bir Linux Kitaplığı Sayfası