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;
}