- ARGP_KEY_ARG
Seçeneği olmayan bir komut satırı argümanını belirtmek için argüman bu değere bir gösterici olur.
Çok sayıda argp çözümleyicinin bulunmasından dolayı çok sayıda çözümleyici işlev varsa, belli bir argümanın hangisi tarafından çözümleneceğini bilmek mümkün olmaz. Bu durumda sıfır ya da ARGP_ERR_UNKNOWN dışında bir hata döndürünceye kadar herbiri çağrılır; yine de bir argüman elde edilememişse, argp_parse işlevi başka bir argüman çözümlemesi yapmaksızın başarılı olarak döner.
Bu anahtar için bir çözümleyici işlev başarılı olmuşsa, bu kaydedilir ve ARGP_KEY_NO_ARGS durumu kullanılmaz. Ancak, bir çözümleyici işlev bir argümanı işlerken, durum argümanının next alanını azaltıyorsa, seçenek işlenmemiş varsayılacaktır; bu durumda hala bir seçenek içinde argümanı değiştirme ve onu tekrar işleme sokma imkanı olacaktır.
- ARGP_KEY_ARGS
Bir çözümleyici işlev, ARGP_KEY_ARG için ARGP_ERR_UNKNOWN hatası ile dönerse, bu anahtarla benzer anlama sahip ama kalan tüm argümanlar üzerinde etkili olan ARGP_KEY_ARGS anahtarı ile çağrı hemen yinelenir. argüman 0'dır ve argüman vektörünün ucu durum->argv + durum->next ile bulunur. Bu anahtar için işlev başarılı ise ve durum->next değişmemişse, kalan tüm argümanlar tüketilmiş varsayılır. Aksi takdirde, durum->next ile belirtilen miktar kullanılmış olanların sayısına ayarlanır. Örnekte farklı argümannlar için her iki durum da kullanılmıştır:
…
case ARGP_KEY_ARG:
if (durum->arg_num == 0)
/* İlk argüman */
ilk_arg = arguman;
else
/* Sonra çözümlenecek. */
return ARGP_KEY_UNKNOWN;
break;
case ARGP_KEY_ARGS:
kalan_argumanlar = durum->argv + durum->next;
kalan_arg_sayisi = durum->argc - durum->next;
break;
- ARGP_KEY_END
Bu anahtar başka komut satırı kalmadığını belirtir. Çözümleyici işlevler farklı bir sırada (önce children) çağrılır. Bu, her çözümleyici işlevin çağrıcısı için kendi durumunu temizleme imkanı verir.
- ARGP_KEY_NO_ARGS
Seçeneği olmayan argümanların yokluğunda bazı özel işlemler ortaktır. Bundan dolayı, eğer çözümleyici işlevde seçeneği olmayan argümanları başarıyla işleme yeteneği yoksa bu işlevler bu anahtarla çağrılır. Bu çağrı, önceden çözümlenmiş argümanlar üzerinde daha genel doğrulama sınamalarının yapılabilmesi için ARGP_KEY_END'li bir çağrıdan önce yapılır.
- ARGP_KEY_INIT
Herhangi bir çözümleme yapılmadan önce kullanılır. Bunun ardından, durum yapısının child_input alanının her elemanının değeri, çocuk çözümleyiciler çağrılırken input üyesini ilklendirmek üzere herbirinin durumuna kopyalanır.
- ARGP_KEY_SUCCESS
Bazı argümanlar kalsa bile, istenen çözümleme başarıyla tamamlandığında kullanılır.
- ARGP_KEY_ERROR
Bir hata oluştuğunda ya da çözümleme tamamlandığında kullanılır. Bu takdirde ARGP_KEY_SUCCESS anahtarlı bir çağrı asla yapılmamalıdır.
- ARGP_KEY_FINI
ARGP_KEY_SUCCESS ve ARGP_KEY_ERROR anahtarlı çağrılardan bile sonra kullanılan son anahtar. ARGP_KEY_INIT anahtarlı bir çağrı ile ilklendirilen özkaynaklar bu anahtar kullanılarak yapılan bir çağrı ile serbest bırakılır. Bu sırada, bir başarılı çözümleme sonrası çağrıcıya döndürülen özkaynaklar ayrılmış olarak kalır. Bu durumda, bu özkaynaklar ARGP_KEY_ERROR durumuyla serbest bırakılabilir.