Под 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 не работает, может кто сталкивался, нужна именно потокобезопасная версия.