From c46be6db32872bfd7c4010b43526b5e6bc0fa6a5 Mon Sep 17 00:00:00 2001 From: wangzhengquan <wangzhengquan85@126.com> Date: 星期一, 25 一月 2021 14:04:59 +0800 Subject: [PATCH] update --- src/bus_error.cpp | 36 ++++++++++++++++++++++++++---------- 1 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/bus_error.cpp b/src/bus_error.cpp index cf16cf2..179211f 100644 --- a/src/bus_error.cpp +++ b/src/bus_error.cpp @@ -42,9 +42,8 @@ char * bus_strerror(int err) { - int s, eindex; + int s; char *buf; - eindex = err - EBUS_BASE; /* Make first caller allocate key for thread-specific data */ s = pthread_once(&once, createKey); @@ -65,14 +64,31 @@ err_exit(s, "pthread_setspecific"); } - if (eindex < 0 || eindex >= _bus_nerr || _bus_errlist[eindex] == NULL) - { - snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", eindex); - } - else - { - strncpy(buf, _bus_errlist[eindex], MAX_ERROR_LEN - 1); - buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */ + + if(err < EBUS_BASE) { + // libc閿欒 + if (err < 0 || err >= _sys_nerr || _sys_errlist[err] == NULL) + { + snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err); + } + else + { + strncpy(buf, _sys_errlist[err], MAX_ERROR_LEN - 1); + buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */ + } + } else { + //鑷畾涔夐敊璇� + err -= EBUS_BASE; + if (err < 0 || err >= _bus_nerr || _bus_errlist[err] == NULL) + { + snprintf(buf, MAX_ERROR_LEN, "Unknown error %d", err); + } + else + { + strncpy(buf, _bus_errlist[err], MAX_ERROR_LEN - 1); + buf[MAX_ERROR_LEN - 1] = '\0'; /* Ensure null termination */ + } + } return buf; -- Gitblit v1.8.0