Bir Ağgrubu Hakkında Bilgi Alınması
Önceki Ağ Grubu Veritabanı Sonraki
Bir Ağgrubu Hakkında Bilgi Alınması
Ağgrubu erişim işlevleri tüm diğer sistem veritabanı işlevlerinden birazcık farkıdır. Tek bir ağgrubu çok sayıda girdi içerebildiğinden iki adımlık bir işlem gerekir. Önce tek bir ağgrubu seçilir, sonra da bu ağgrubundaki tüm girdiler üzerinde yineleme yapılır. Bu işlevler netdb.h başlık dosyasında bildirilmiştir.
int setnetgrent
(const char *netgrup)
işlev
Bu işleve yapılan bir çağrı netgrup isimli ağgrubundaki tüm girdiler üzerinde yinelenecek getnetgrent çağrılarını mümkün kılmak üzere kütüphanenin dahili durumunu ilklendirir.
Çağrı başarılı olduğunda (örn, bu isimde bir ağ grubu varsa) 1 değeri döner. 0 dönüş değeri ya bu isimde bir ağgrubu olmadığını ya da bir hata oluştuğunu belirtir.
Ağgruplarının yinelenemesi için sadece tek bir durumun var olduğunu hatırlamak önemlidir. Yazılımcı getnetgrent_r işlevini kullansa bile daima tek bir seferde sadece bir ağgrubu işlenebildiğinden sonuç gerçekte evresel olmayacaktır. Eğer yazılım aynı anda bir ağgrubundan fazlasını işlemeyi gerektiriyorsa, yazılımcı harici kiltleme kullanarak bunu korumalıdır. Bu sorun SunOS'daki özgün ağgrubu gerçeklemesinde vardır ve uyumlu kalmak gerektiğinden bunu değiştirmek mümkün değildir.
Ağgrupları katmanını başka işlevler de kullanır. Şimdilik bunlar NSS gerçeklemesinin compat hizmeti ile ilgili parçaları ile innetgr işlevidir.
int getnetgrent
(char **konak,
 char **kullanıcı,
 char **alanadı)
işlev
Bu işlev o an seçili ağgrubunun sonraki işlenmemiş ilk girdisini döndürür. Adresleri konak, kullanıcı ve alanadı argümanlarında aktarılan dizge göstericileri başarılı bir çağrı sonrasında ilgili dizgeleri içerecektir. Eğer sonraki girdide dizge boşsa gösterici NULL değerine sahip olur. Dönen dizge göstericileri sadece çağrılmış bir ağgrubu işlevinin olmaması halinde geçerlidir.
Sonraki girdi başarıyla okunmuşsa işlev 1 değeri ile döner. 0 değeri böyle bir girdinin olmadığını ya da dahili bir hata oluştuğunu gösterir.
int getnetgrent_r
(char **konak,
 char **kullanıcı,
 char **alanadı,
 char  *tampon,
 int    tampon_uzunluğu)
işlev
Bu işlev bir şey dışında getnetgrent işlevinin benzeridir: konak, kullanıcı ve alanadı dizge göstericilerinin gösterdiği dizgeler, tampon ile başlayan tampon_uzunluğu baytlık tampona yerleştirilir. Bunun anlamı, çağrılmış bir ağgrubu işlevinin olması halinde bile dönen değerlerin geçerli olduğudur.
Sonraki girdi başarıyla okunmuşsa ve tamponda dizgeler için yeterince yer varsa işlevin dönüş değeri 1'dir. 0 dönüş değeri böyle bir girdinin olmadığı, tamponun yetersiz olduğu ya da dahili bir hata oluştuğunu gösterir.
Bu işlev bir GNU oluşumudur. SunOS'un özgün gerçeklemesi böyle bir işlevi içermemektedir.
void endnetgrent
(void)
işlev
Bu işlev, seçilen son ağgrubu ile ilgili olarak ayrılmış tamponları serbest bırakır. Sonuç olarak, bu çağrıdan sonra yapılan getnetgrent çağrılarının döndürdüğü tüm dizge göstericileri geçersizdir.
Önceki Üst Ana Başlık Sonraki
Ağgrubu Verisi Başlangıç Ağgrubu Üyeliğinin Sınanması
Bir Linux Kitaplığı Sayfası