Genelleme Seçenekleri
Önceki Genelleme Sonraki
Genelleme Seçenekleri
Bu bölümde glob işlevinin seçenekler argümanında belirtilebilecek seçenekler açıklanmıştır. Seçtiğiniz seçenekleri C'nin bit seviyesi VEYA işleci olan | işlecini kullanarak birlikte belirtebilirsiniz.
GLOB_APPEND
Önceki bir glob çağrısı ile üretilen dizge göstericileri dizisine bu genişletmeden dizgeler eklenir. İşlem bir dizgeye aralarında boşluklar bırakarak yeni sözcükler eklenmesi gibidir.
Ekleme işlemi sırasında, glob çağrısından önce dizge göstericileri dizisine ilişkin bilgileri içeren yapının içeriğinde değişiklik yapmamalısınız. Eğer ilk çağrıda GLOB_DOOFFS seçeneğini kullanmışsanız, ekleme amacıyla yaptığınız çağrıda da bu seçeneği kullanmalısınız.
Yapının gl_pathv üyesindeki gösterici ikinci glob çağrısından sonra artık geçerli olmayacaktır, çünkü glob işlevi diziyi yeniden ayırır. Böylece her glob çağrısından sonra glob_t yapısının gl_pathv üyesinden doğru gösterici elde edilir; çağrılar arasında gösterici asla saklanmamalıdır.
GLOB_DOOFFS
Gösterici dizisinin başlangıcında boş göstericiler bırakır. gl_offs alanında bunun sayısı belirtilir.
GLOB_ERR
Eğer kalıp'ın eşleştirilmesi sırasında okunması gereken dizinlerin okunmasında zorluk varsa, bir hata raporlanır ve hemen çıkılır. Okunmak istenen dizinin erişim izinlerinin yetersizliği bu zorluklardan biridir.
glob çağrısında hataları elde edebilen bir hata-işlevi belirterek bu hatalar üzerinde daha fazla denetim sağlayabilirsiniz. hata-işlevi olarak bir boş gösterici belirtmemişseniz, glob bir dizini okuyamadığında hemen çıkmaz, iki argümanla şuna benzer biçimde hata-işlevi işlevini çağırır:
(*hata-işlevi) (dosyaismihatakodu)
dosyaismi argümanı glob işlevinin açamadığı ya da okuyamadığı dizinin ismidir, hatakodu ise glob tarafından raporlanan errno değeridir.
Hata eylemci işlev sıfırdan farklı bir değerle dönerse glob hemen döner, aksi takdirde işleme devam eder.
GLOB_MARK
Kalıp dizin ismiyle eşleşirse, dizin ismi döndürülürken ismine / eklenir.
GLOB_NOCHECK
Eğer kalıp hiçbir dosya ismiyle eşleşmezse, işlev sanki bir eşleşme bulunmuş gibi döner. (Normalde, kalıp hiçbirşeyle eşleşmemişse glob eşleşme bulunmadığını belirtecek şekilde döner.)
GLOB_NOSORT
Dosya isimleri alfabetik olarak sıralanmaz; okundukları sırada döndürülürler. (Pratikte sıralama, dosyaların dizine giriş sırasına bağlıdır.) Sıralama yapılmak istenmemesinin tek sebebi zaman kazanmak olabilir.
GLOB_NOESCAPE
Kalıpta \ karakteri özel olarak değil kendisi olarak ele alınır. Normalde, \ başka bir karakteri öncelemek için kullanılır. Bu seçenek bu şekilde yorumlanmasını engeller. Önceleme etkinse, \? kalıbı sadece ? dizgesiyle eşleşir, çünkü bu biçimde belirtilen soru işareti kalıpta sıradan bir karakter olarak işlem görür.
GLOB_NOESCAPE seçeneği etkinse,\ bir sıradan karakterdir.
glob işlevi fnmatch işlevini defalarca çağırarak çalışır. GLOB_NOESCAPE seçeneğini fnmatch çağrılarında FNM_NOESCAPE seçeneğini etkinleştirmek için kullanır.
Önceki Üst Ana Başlık Sonraki
glob çağrısı Başlangıç Diğer Genelleme Seçenekleri
Bir Linux Kitaplığı Sayfası