if (prefix != NULL) {
fputs(prefix, file);
}
+
+ char buf[1024] = {0};
+ char *errno_msg;
+#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE
+ int ret = strerror_r(error_code, buf, sizeof(buf));
+ errno_msg = ret == 0 ? buf : "<strerror_r failure>";
+#else
+ errno_msg = strerror_r(errno, buf, sizeof(buf));
+#endif
+
log_current_data();
vfprintf(file, fmt, arg);
- fprintf(file, ": %s\n", strerror(error_code));
+ fprintf(file, ": %s\n", errno_msg);
fflush(file);
pthread_mutex_unlock(&log_lock);
}