LINUX.ORG.RU

Тексты живут в glibc, изменять их тяжело. Поэтому мне кажется, что использование errno не очень хорошая идея.

anonymous
()
Ответ на: комментарий от anonymous

Хотя ничто не мешает, конечно, сделать так:

char *strerror(int errnum)
{
  if (errnum == MY_ERRNUM)
    fprintf (stderr, "My error");
  else
  /* А здесь кусок из glibc */
}


можно с указателями на функцию поработать, подменить указатель на функцию strerror своим, а старый сохранить. Но лучше этого избежать.

anonymous
()

подмени ф-ю strerror на свою которая в свою очередь может вызывать оригинальную

cvv ★★★★★
()
Ответ на: комментарий от cvv

Спасибо. Лучше конечно никуда не лезть - здоровее будешь. Можно подменить, но возможен конфликт, если тредов много.

anonymous
()

Вот что я нашел в мане:
#include <errno.h>
const char *sys_errlist[];
int sys_nerr;

Если тебе просто надо заменить описание ошибки на свое -- измени содержимое массива.
Если добавить новое, выясни как он создается и аккуратно добавь.
PS. Я не уверен что получится. 8)

OxiD ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.