- GLOB_PERIOD
. (nokta) karakteri özel karakter olarak ele alınır. Bu durumda özel kalıp karakteri olarak eşleştirilmez.
Dosya İsmi Kalıpları bölümündeki
FNM_PERIOD seçeneğine de bakınız.
- GLOB_MAGCHAR
GLOB_MAGCHAR seçeneği glob işlevinin seçenekler parametresinde kullanmak için değildir. glob işlevi bu seçeneği, eğer kalıp, özel kalıp karakterleri içeriyorsa sonucun bu yolla elde edileceğini belirtmek için glob_t yapısının gl_flags üyesinde kullanır.
- GLOB_ALTDIRFUNC
Bu seçenek etkinse,
glob gerçeklemesi dosya sistemine erişmek için kütüphanedeki işlevleri değil, kullanıcı tarafından
dizi-gst ile gösterilen yapı içinde belirtilen işlevleri kullanır. Dizinlere erişim için kullanılan işlevler
Dizinlere Erişim ve
Bir Dosyanın Özniteliklerinin Okunması bölümlerinde açıklanmıştır.
- GLOB_BRACE
Bu seçenek etkinse kaşlı ayraçlar özel olarak ele alınır. Bu durumda kaşlı ayraçların doğru gruplanması gerekir. Yani kaşlı ayraçlar çiftler halinde olmalıdır. İç içe gruplamalar yapılabilir. Böylece bir gruplama bir diğerini tanımlamakta kullanılabilir. Bir kaşlı ayraç ifadesi, başka bir kaşlı ayraç ifadesinin içinde tanımlanmışsa onun dışına çıkmaması gerektiğine dikkat etmelisiniz.
Bir kaşlı ayraç grubundaki dizgeler, virgüllerle ayrılarak ayrı ifadeler haline getirilebilir. Bu durumda virgüllerin bu amaçla kullanıldıkları ve dizgelerin virgül içermedikleri varsayılır. Virgül kullanılarak ayrılan ifadeler aynı seviyede olmalıdır. Alt ifadeler kaşlı ayraç içine alınmışsa bunların içindeki virgüller eşleştirilmez. Kaşlı ayraçlı alt gruplarda daha derin seviyeleri elde etmede kullanılır. Bir kullanım örneği:
glob ("{foo/{,bar,biz},baz}", GLOB_BRACE, NULL, &result)
Eğer hataları gözönüne almazsak, şuna eşdeğerdir:
glob ("foo/", GLOB_BRACE, NULL, result)
glob ("foo/bar", GLOB_BRACE|GLOB_APPEND, NULL, &result)
glob ("foo/biz", GLOB_BRACE|GLOB_APPEND, NULL, &result)
glob ("baz", GLOB_BRACE|GLOB_APPEND, NULL, &result)
- GLOB_NOMAGIC
Eğer kalıp herhangi bir özel kalıp karakteri içermiyorsa (doğrudan dosya ismi verilmişse), bu isimde bir dosya yoksa bile bu kalıp dizgesi döndürülür.
- GLOB_TILDE
Bu seçenek etkinse ve kalıp yaklaşık işareti (~) ile başlıyorsa, bu karakter özel olarak ele alınır. Bu durumda yaklaşık işaretinin bir kullanıcının ev dizinini gösterdiği varsayılır.
Eğer ~ kalıptaki tek karakterse ya da onu bir / (bölü çizgisi) izliyorsa, bu kalıp sürecin sahibinin ev dizini ile eşleştirilir. Bilgi, getlogin ve getpwnam işlevleri kullanılarak sistem veritabanlarından okunur. Örneğin, ev dizini /home/bart olan bart kullanıcısı için çağrı şöyle olurdu:
glob ("~/bin/*", GLOB_TILDE, NULL, &result)
Bu çağrıdan /home/bart/bin döner. Burada başka bir kullanıcının ev dizini de belirtilebilirdi. Bunun için yaklaşık işaretinden sonra kullanıcının ismini belirtmek yeterlidir. homer'in bin dizinini almak istersek:
glob ("~homer/bin/*", GLOB_TILDE, NULL, &result)
Eğer kullanıcı ismi geçersizse ya da ev dizini bir nedenle saptanamamışsa kalıba dokunulmaksızın kalıp dizgesi sonuç olarak döndürülür. Son örnekte, homer isminde bir kullanıcı yoksa işlev ~homer dizinini aramaz ve sonuç olarak "~homer/bin/*" dizgesini döndürür.
Bu işlevsellik C kabuklarında nonomatch seçeneğinin etkin olduğu duruma eşdeğerdir.
- GLOB_TILDE_CHECK
Bu seçenek belirtilmişse glob işlevi GLOB_TILDE seçeneği verilmiş gibi davranır. Tek fark, belirtilen kullanıcı yoksa ya da bir ev dizini saptanamamışsa kalıp dizgesi döndürülmez ve işlem bir hata ile sonuçlanır.
Bu işlevsellik C kabuklarında nonomatch seçeneğinin etkin olmadığı duruma eşdeğerdir.
- GLOB_ONLYDIR
Bu seçenek belirtilmişse, bu, çağrıcının sadece kalıpla eşleşen dizinle ilgilendiğine dair bir ipucu olarak değerlendirilir. Eğer dosya hakkında saptanan bilgi onun bir dizin olmadığını belirtiyorsa bunlar reddedilir ama bunların türünü saptamak için ek bir çalışma yapılmaz. Yani çağrıcı hala bir süzme çalışması yapabilir.
Bu işlevsellik sadece GNU glob gerçeklemesi ile kullanılabilir. Aslında dahili kullanım için düşünülmüşse de kullanıcı için de yararlı olabileceğinden burada belgelenmiştir.