POSIX Şablonunun Temizlenmesi
Önceki Düzenli İfade Eşleştirme Sonraki
POSIX Şablonunun Temizlenmesi
Bir derlenmiş düzenli ifadeyi artık kullanmayacaksanız, bir regfree çağrısı ile ona ayrılan belleği serbest bırakabilirsiniz.
void regfree
(regex_t *şablon)
işlev
regfree çağrısı *şablon ile gösterilen derlenmiş düzenli ifadeye ayrılan belleği serbest bırakır. Bu alan, bu kılavuzda üyelerinin hepsini açıklamadığımız regex_t yapısının çeşitli iç alanlarını içerir.
regfree işlevi *şablon nesnesinin kendisini serbest bırakmaz.
Başka bir düzenli ifadeyi regex_t yapısında derlemeden önce bu yapı için ayrlan alanı regfree ile serbest bırakmalısınız.
regcomp veya regexec işlevi bir hata raporladığında, bunu bir hata dizgesine dönüştürmek için regerror işlevini kullanabilirsiniz.
size_t regerror
(int                     hatakodu,
 const regex_t *restrict şablon,
 char *restrict          tampon,
 size_t                  uzunluk)
işlev
Bu işlev hatakodu ile belirtilen hata kodu için bir hata iletisi üretir ve bunu tampon adresinden başlayan uzunluk baytlık dizgeye yerleştirir. şablon argümanı ile belirtilen derlenmiş düzenli ifade hatanın oluştuğu regcomp veya regexec işlevinde kullanılmış olan nesne olmalıdır. şablon argümanında değer olarak NULL'da belirtebilirsiniz ve anlamlı bir hata iletisi alabilirsiniz, ama alacağınız hata iletisi ayrıntılı olmayacaktır.
Hata iletisi belirttiğiniz uzunluk bayta sığmazsa, regerror hata iletisinin sığdığı kadarını yerleştirir. İşlev, ister tam dizgeyi ister kırpılmış dizgeyi döndürsün, daima dizgeyi boş karakterle sonlandırır.
İşlevin dönüş değeri hata iletisinin tamamının uzunluğudur. Bu değer uzunluk'tan küçükse dizge kırpılmamış demektir, bu dizgeyi kullanabilirsiniz, aksi takdirde işlevi daha büyük bir tamponla yeniden çağırmalısınız.
Bu örnekte kullanılan regerror çağrısında hata iletisi için gereken alan özdevimli olarak ayrılmaktadır:
char *get_regerror (int errcode, regex_t *compiled)
{
  size_t length = regerror (errcode, compiled, NULL, 0);
  char *buffer = xmalloc (length);
  (void) regerror (errcode, compiled, buffer, length);
  return buffer;
}
Önceki Üst Ana Başlık Sonraki
Alt-ifade Eşlemesindeki Sorunlar Başlangıç Kabuk Usulü Sözcük Yorumlama
Bir Linux Kitaplığı Sayfası