Seçenekler
Önceki Argp Sonraki
Seçenekler
struct argp yapısının options alanı, her birinde argp çözümleyicinin desteklemesi için bir seçenek belitilen struct argp_option yapılarının vektörünü gösterir. Farklı isimlere sahip tek bir seçenek için çok sayıda girdi kullanılabilir. Böyle bir girdi grubu tüm alanları sıfır olan bir girdi ile sonlandırılır. Böyle bir C dizisini ilklendirirken bu işlemi yapmak için { 0 } yazmanın yeterli olacağını hatırlatalım.
struct argp_option
veri türü
Bu yapı, argp çözümleyicinin arayacağı tek bir seçeneği belirtmek için kullanılmasının yanında, bu seçeneğin nasıl çözümleneceği ve yardım iletisinde bu seçenek için nasıl bir açıklama verileceğini belirtmek için de kullanılır. Şu alanlara sahiptir:
const char *name
Bu seçeneğin --isim biçimindeki uzun ismi; seçenek sadece kısa isme sahipse bu üye sıfır olarak bırakılabilir. Bir seçeneğin çok sayıda isimle kullanılabilmesi durumunda, bu girdiyi ek girdilerin izlemesini istiyorsanız OPTION_ALIAS bitini etkinleştirmelisiniz. Bkz. Bayraklar.
int key
Seçenek çözümleyiciye bu seçeneği tanımlayan tamsayı anahtar. Eğer anahtar basılabilir bir ascii karakterin (yani, isascii (anahtar)) değeri ise, -karakter biçimindeki bir kısa seçeneğin ismi olan karakteri de ifade eder.
const char *arg
Sıfırdan farklı ise, --isim=değer veya -karakter değer sözdizimlerindeki gibi bu seçenekle kullanılan argümanın ismidir. Bu argüman ismi OPTION_ARG_OPTIONAL biti etkin değilse anlamlıdır. Bkz. Bayraklar.
int flags
Bu seçenekle ilgili bayraklar (bir kısmından yukarıda bahsedilmişti). Bkz. Bayraklar.
const char *doc
Bu seçenek için bilgilendirme iletisi; yardım iletilerinde seçeneğin açıklaması olarak basılır.
name ve key alanlarının ikisi de sıfırsa, bu dizge grup başlığı yapılmak üzere normalde seçeneklerin bulunduğu sütununa basılır. Bu dizge kendi grubunun ilki olmalıdır. Kullanımda, bu dizge teamülen : ile biter.
int group
Bu seçenek için grup kimliği.
Uzun bir yardım iletisinde, her gruptaki seçenekler alfabetik olarak sıralanırlar ve gruplar da 0, 1, 2, …, n, -m, …, -2, -1 sırasıyla basılırlar.
Bir seçenekler dizisinin bu alanı 0 olan her girdisi grup numarasını, kendinden bir önceki girdiden miras alacaktır, doğal olarak ilki sıfırsa sıfır olacaktır. Grubunu başında name ve key alanlarının ikisi de sıfırsa, "önceki girdi + 1" öntanımlıdır. Argp arayüzü tarafından üretilen --help gibi seçeneklerin grubu -1'dir.
C yapılarının ilklendirme kurallarından dolayı, bu alan çoğunlukla belirtilmez, çünkü 0 geçerli bir değerdir.
Bayraklar
Aşağıdaki bayraklar VEYA'lanarak bir struct argp_option yapısının flags alanında kullanılır. Bu bayraklar, seçeneklerin nasıl çözümleneceğini veya yardım iletilerinde nasıl gösterileceğini belirlerler:
OPTION_ARG_OPTIONAL
Bu seçenekle ilgili argümanın belirtilmesi isteğe bağlıdır.
OPTION_HIDDEN
Bu seçenek hiçbir yardım iletisinde gösterilmez.
OPTION_ALIAS
Bu seçenek en yakın takma ad olmayan seçeneğin takma adıdır. Yani takma adı olduğu yardım girdisi ile aynı girdide gösterilir. Takma adı olduğu seçeneğin name ve key dışındaki üyelerinin değerlerini miras alacaktır.
OPTION_DOC
Bu seçenek aslında bir seçenek değildir ve seçenek çözümleyicide yoksayılır. Seçeneklerle aynı manada gösterilecek keyfi bir belgeleme bölümüdür. Belgeleme seçeneği olarak da bilinir.
Bu bit etkinse, seçeneğin name alanı değiştirilmeksizin gösterilir (yani önüne hiç - eklenmez). Dizge kısa seçeneklerin olduğu yerde gösterilir. Sıralama amacına uygun olarak dizgenin başında - olmadıkça başlangıçtaki boşluklar ve noktalama işaretleri yoksayılır. Bu girdi tüm seçeneklerden sonra, - ile başlayan OPTION_DOC girdilerinden sonra aynı grupta gösterilir.
OPTION_NO_USAGE
Bu seçenek "uzun" kullanım iletisine konmaz, diğer yardım iletilerine konur. Bu bit, argp arayüzünün args_doc alanında tamamen belgelenmiş seçenekler için tasarlanmıştır. Bkz. Argp Çözümleyicisinin Belirtilmesi. Bu bitin soysal kullanım listesinde bulunması gereksiz olurdu, bundan kaçınmak gerekir.
Örneğin, args_doc alanında "FOO BAR\n-x BLAH" varsa ve -x seçeneğinin amacı bu iki durumu ayırmaksa, -x şüphesiz OPTION_NO_USAGE olarak imlenecekti.
Önceki Üst Ana Başlık Sonraki
Argp Çözümleyicisinin Belirtilmesi Başlangıç Argp Çözümleyici İşlevleri
Bir Linux Kitaplığı Sayfası