Здравствуйте. Нужно добавить свои коды ошибок ко всем имеющимся. Можно изменить значение errno, но где живет все остальное, например, тексты, выводимые через strerror(errno)? Заранее благодарен.
Хотя ничто не мешает, конечно, сделать так:
char *strerror(int errnum)
{
if (errnum == MY_ERRNUM)
fprintf (stderr, "My error");
else
/* А здесь кусок из glibc */
}
можно с указателями на функцию поработать, подменить указатель на функцию strerror своим, а старый сохранить. Но лучше этого избежать.
Вот что я нашел в мане:
#include <errno.h>
const char *sys_errlist[];
int sys_nerr;
Если тебе просто надо заменить описание ошибки на свое -- измени содержимое массива.
Если добавить новое, выясни как он создается и аккуратно добавь.
PS. Я не уверен что получится. 8)