URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5173
[ Назад ]

Исходное сообщение
"strerror_r не пашет"

Отправлено kokoav , 26-Фев-06 13:41 
Под FC4, кусок кода

perror("Could not connect");
char sys_err_buf[256];
if( strerror_r(err_no, sys_err_buf, 256) == 0){
  std::ostringstream os;
  os << msg << " - " << sys_err_buf;
  err_msg = os.str();
}else{
  std::cerr << errno << perror(" ") << std::endl;
}

Выдает
Could not connect: Connection refused
29 Illegal seek

т.е. strerror_r всегда возвращает -1, при этом perror прекрасно этот номер(111) ошибки находит.

Обошел через sys_errlist[err_no], но почему strerror_r не работает, может кто сталкивался, нужна именно потокобезопасная версия.


Содержание

Сообщения в этом обсуждении
"strerror_r не пашет"
Отправлено vic , 26-Фев-06 14:45 
>if( strerror_r(err_no, sys_err_buf, 256) == 0){

Попробуй дочитать ман до конца, там в части CONFORMING TO найдешь другой прототип этой функции и сразу поймешь почему она тебе упорно выдает -1 :)

P.S. Все таки она пашет :)