Yazılım Argümanları
Önceki XXV. Oylum - Temel Yazılım ve Sistem Arayüzü Sonraki
Yazılım Argümanları
İçindekiler
1. Yazılım Argümanları için Sözdizimi Uzlaşımları  -  Teamülen, seçenekler bir tire işareti ile başlar.
2. Yazılım Argümanlarının Çözümlenmesi  -  Yazılımın seçenek ve argümanlarını çözümleme yolları.
3. getopt  -  Yazılım seçeneklerinin getopt ile çözümlenmesi
3.1. getopt Kullanımı  -  getopt işlevinin kullanımı
3.2. getopt Örneği  -  getopt ile argümanların çözümlenmesi örneği
3.3. getopt_long ile Uzun Seçeneklerin Çözümlenmesi  -  GNU uygulamaların uzun isimli seçenekler kabul etmesini önerir; nasıl yapılacağı da burada.
3.4. getopt_long Kullanım Örneği.  -  getopt_long ile uzun seçenekleri çözümlemek için örnek yazılım.
4. Argp  -  argp_parse ile yazılım seçeneklerinin çözümlenmesi
4.1. argp_parse İşlevi  -  Argp arayüzünün ana işlevi argp_parse işlevidir.
4.2. Argp Genel Değişkenleri
4.3. Argp Çözümleyicisinin Belirtilmesi  -  argp_parse ile kullanmak için çözümleyicinin tanımlanması.
4.4. Seçenekler  -  Argp çözümleyiciye seçeneklerin belirtilmesi.
4.4.1. Bayraklar  -  Argp seçeneklerinin yorumlanmasında kullanılan seçenekler
4.5. Argp Çözümleyici İşlevleri  -  Argp çözümleyici için tanımlanan eylemler.
4.5.1. Argp Çözümleyici İşlevleri için Özel Anahtarlar  -  anahtar argümanında kullanılabilecek özel anahtarlar.
4.5.2. Argp Çözümleyicilere Yardımcı İşlevler  -  Argp çözümlemesine yardımcı olan işlevler.
4.5.3. Argp Çözümleme Durumu  -  durum argümanı ne ifade eder.
4.6. Çocuk Çözümleyiciler  -  Çok sayıda argp çözümleyicinin birlikte kullanılması
4.7. argp_parse Bayrakları  -  argp_parse davranışını etkileyen bayraklar.
4.8. Argp Yardım Çıktısının Özelleştirilmesi  -  Bir argp çözümleyici için yardım çıktısının özelleştirilmesi.
4.8.1. Argp Yardım Özelleştirme Anahtarları  -  Yardım özelleştirme işlevlerinde belirtilebilecek anahtar değerleri.
4.9. argp_help İşlevi  -  Yardım iletilerinin çözümlenmeden basılması.
4.10. argp_help Bayrakları  -  Basılacak yardım iletisininin sırasının belirlenmesi.
4.11. Argp Örnekleri  -  Argp arayüzünün kullanıldığı basit yazılım örnekleri.
4.11.1. 1. Örnek  -  Argp kullanan en küçük örnek
4.11.2. 2. Örnek  -  Sadece öntanımlı seçeneklerle argp kullanan örnek bir yazılım
4.11.3. 3. örnek  -  Kullanıcı seçenekleriyle Argp kullanılan bir yazılım örneği
4.11.4. 4. Örnek  -  Çok sayıda Argp çözümleyicinin birarada kullanıldığı bir yazılım örneği.
4.12. Argp Arayüzünün Kişiselleştirmesi  -  Kullanıcılar --help çıktısının biçimini belirleyebilir.
5. Alt Seçeneklerin Çözümlenmesi  -  Bazı yazılımlar daha ayrıntılı seçenekler gerektirir.
6. Alt Seçenek Çözümleme Örneği  -  mount için bunun nasıl yapıldığı gösterilmiştir.
Sistem bir C yazılımını main işlevini çağırarak başlatır. Bu aslında sizin yazdığınız, ismi main olan bir işlevdir; bu işlevi yazmamışsanız, yazılımınızı hatasız derlemeniz mümkün olamaz.
ISO C'ye göre main işlevini ya argümansız ya da yazılımın komut satırı argümanlarını ifade eden iki argümanla bu örnekteki gibi tanımlayabilirsiniz:
int main (int argc, char *argv[])
Komut satırı argümanları kabukta yazılımı çağırırken kullanılan boşluklarla ayrılmış bir takım sözcüklerdir; örneğin, cat foo bar gibi bir komut satırında foo ve bar argümanlardır. Bir yazılımın komut satırı argümanlarına bakabileceğiniz tek yer main işlevidir ve bunu işlevin argümanları sağlar. Eğer main işlevini argümansız olarak tanımlamışsanız, komut satırı argümanlarını elde edemezsiniz.
argc argümanının değeri komut satırı argümanlarının sayısıdır. argv argümanı ise bir C dizgeleri vektörüdür; yani elemanları komut satırı argüman dizgeleri olan bir dizidir. Yazılımın dosya ismi de bu vektör içinde vektörün ilk elemanı olarak yer alır; argc ise bu dizideki elemanların sayısıdır. Son eleman daima bir boş göstericidir: argv[argc] bir boş göstericidir.
cat foo bar komutu için, argc argümanının değeri 3'tür ve argv, elemanları "cat", "foo" ve "bar" olan bir dizidir.
Unix sistemlerinde main işlevini üç argüman kullanılan üçüncü bir yöntemle tanımlayabilirsiniz:
int main (int argc, char *argv[], char *envp[])
İlk iki argüman aynıdır. Üçüncü argüman olan envp yazılımın ortamını verir; environ değeri ile aynıdır. Bkz. Ortam Değişkenleri. POSIX.1 bu üçüncü argümana izin vermez, dolayısıyla taşınabilirlik açısından en iyisi main işlevini iki argümanlı olarak yazmak ve environ değerini kullanmaktır.
Önceki Üst Ana Başlık Sonraki
XXV. Oylum - Temel Yazılım ve Sistem Arayüzü Başlangıç Yazılım Argümanları için Sözdizimi Uzlaşımları
Bir Linux Kitaplığı Sayfası