wordexp çağrısı
Önceki Kabuk Usulü Sözcük Yorumlama Sonraki
wordexp çağrısı
Sözcük yorumlaması ile ilgili tüm işlevler, sabitler ve veri türleri wordexp.h başlık dosyasında bulunur.
Sözcük yorumlaması sonuç olarak bir dizge göstericileri dizisi üretir. Bu dizgeyi döndürmek için wordexp işlevi bir yapı olan özel bir veri türü, wordexp_t kullanır. wordexp işlevine bu yapının adresini aktarırsanız, işlev sonuç hakkında bilgiyi, bu yapının elemanlarına kaydederek döndürür.
wordexp_t
veri türü
Bu veri türü, bir sözcük göstericileri dizisine bir gösterici tutar. Daha açık ifade etmek gerekirse, sözcük göstericileri dizisinin adresini ve eleman sayısının kaydını tutar.
we_wordc
Gösterici dizisinin eleman sayısı.
we_wordv
Gösterici dizisinin adresi. Bu alan char ** türündedir.
we_offs
Gösterici dizisindeki ilk gerçek elemanın konumu veya ilk gerçek elemana erişmek için we_wordv alanındaki adrese eklenecek sayı. Diğer alanların aksine bu alan işlev için bir girdidir; işlev diğer alanları çıktıyı döndürmek için kullanır.
Konum olarak sıfırdan farklı bir değer belirtirseniz, dizinin bu elemanından önceki elemanları boş kalır (işlev, bu konumları boş göstericilerle doldurur).
we_offs alanı sadece WRDE_DOOFFS seçeneği etkinse anlamlıdır. Aksi takdirde bu alanın içerdiği değere bakılmaksızın gösterici dizisinin ilk elemanının sıfırıncı eleman olduğu varsayılır.
int wordexp
(const char *sözcükler,
 wordexp_t  *gst-dizisi,
 int         derleme-seçenekleri)
işlev
İşlev, sözcükler dizgesine sözcük yorumlaması uygular ve sonucu ayırdığı bir gösterici dizisinde saklayarak bu dizinin adresini ve eleman sayısını *gst-dizisi içinde döndürür. derleme-seçenekleri argümanını bit değerli seçenekleri belirtmek için kullanabilirsiniz; bu seçenekler için Sözcük Yorumlama Seçenekleri bölümüne bakınız.
sözcükler dizgesinde |; karakterlerini tersbölü karakteri ile öncelemeden kullanmamalısınız. Aksi takdirde WRDE_BADCHAR hata kodunu alırsınız. Bir sözcük yorumlama oluşumunu sarmalamak dışında parantez ve kaşlı ayraç kullanmayın. Eğer tırnak karakteri olarak " karakterini kullanıyorsanız, bir ikincisi ile kapatmalısınız.
Sözcük yorumlamasının sonucu bir sözcük dizisidir. wordexp işlevi sonuçlanan her sözcük için bir dizge ve bu dizgelerin göstericilerinden oluşan char ** türünde bir dizi ayırır. Gösterici dizisinin son elemanı bir boş göstericidir. Bu diziye dizge göstericileri dizisi denir.
wordexp dizinin adresini ve eleman sayısını (sonlandırıcı boş gösterici hariç) gst-dizisi ile gösterilen yapı içinde döndürür.
wordexp başarılı olduğu takdirde 0 ile aksi takdirde şu hata kodlarından biri ile döner:
WRDE_BADCHAR
sözcükler girdi dizgesi | gibi öncelenmemiş geçersiz karakter içeriyor.
WRDE_BADVAL
Girdi dizgesi tanımlanmamış bir kabuk değişkenini ifade ediyor ve bu tür ifadeleri yasaklayan WRDE_UNDEF seçeneğini belirtmişsiniz.
WRDE_CMDSUB
Girdi dizgesi komut ikamesi içeriyor ve siz bunların kullanımını WRDE_NOCMD seçeneğini kullanarak yasaklamışsınız.
WRDE_NOSPACE
Sonucu yerleştirmek için bellek ayrılamıyor. Bu durumda işlev yer ayırabildiği kadar sonuçla döner.
WRDE_SYNTAX
Girdi dizgesinde bir sözdizimi hatası var. Örneğin, tırnak karakterinin eşi yoksa bu bir sözdizimi hatasıdır.
void wordfree
(wordexp_t *gst-dizisi)
işlev
*gst-dizisi yapısında adresi belirtilen gösterici dizisini serbest bırakır. İşlev *gst-dizisi'nin kendisini serbest bırakmaz.
Önceki Üst Ana Başlık Sonraki
Sözcük Yorumlama Katmanları Başlangıç Sözcük Yorumlama Seçenekleri
Bir Linux Kitaplığı Sayfası