From d4408d530f77414923afa61d9e71f218b9092b70 Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Tue, 5 Jul 2022 18:51:44 +0800 Subject: [PATCH] =?UTF-8?q?linux=E4=B8=8A=E5=AE=9E=E7=8E=B0=E4=BB=8E?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E4=B8=AD=E8=8E=B7=E5=8F=96?= =?UTF-8?q?cfg=E5=92=8Clog=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build-qt/HGSolution/HGUpgrade/HGUpgrade.pro | 4 +-- build/linux/HGUpload/HGUpload.cbp | 2 ++ modules/base/HGUtility.cpp | 32 ++++++++++++++------- sdk/upload/main.cpp | 2 +- 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/build-qt/HGSolution/HGUpgrade/HGUpgrade.pro b/build-qt/HGSolution/HGUpgrade/HGUpgrade.pro index 3d33b963..af6b281a 100644 --- a/build-qt/HGSolution/HGUpgrade/HGUpgrade.pro +++ b/build-qt/HGSolution/HGUpgrade/HGUpgrade.pro @@ -168,7 +168,7 @@ SOURCES += \ ../../../modules/base/HGMd5.cpp \ ../../../modules/base/HGUtility.cpp \ ../../../modules/base/HGThread.cpp \ - ../../../utility/HGString.cpp + ../../../utility/HGString.cpp \ HEADERS += \ ../../../app/upgrade/HGUpgrade.h \ @@ -177,7 +177,7 @@ HEADERS += \ ../../../modules/base/HGMd5.h \ ../../../modules/base/HGUtility.h \ ../../../modules/base/HGThread.h \ - ../../../utility/HGString.h + ../../../utility/HGString.h \ FORMS += \ ../../../app/upgrade/mainwindow.ui diff --git a/build/linux/HGUpload/HGUpload.cbp b/build/linux/HGUpload/HGUpload.cbp index 93cedbd7..62c8a0b9 100644 --- a/build/linux/HGUpload/HGUpload.cbp +++ b/build/linux/HGUpload/HGUpload.cbp @@ -168,6 +168,8 @@ + + diff --git a/modules/base/HGUtility.cpp b/modules/base/HGUtility.cpp index 4ebc1321..74425743 100644 --- a/modules/base/HGUtility.cpp +++ b/modules/base/HGUtility.cpp @@ -171,12 +171,24 @@ HGResult HGAPI HGBase_GetModuleName(HGPointer addr, HGChar* name, HGUInt maxLen) } #if !defined(HG_CMP_MSC) - Dl_info dlinfo; - if (0 == dladdr(addr, &dlinfo)) - return HGBASE_ERR_FAIL; - if (maxLen < strlen(dlinfo.dli_fname) + 1) - return HGBASE_ERR_FAIL; - strcpy(name, dlinfo.dli_fname); + if (NULL == addr) + { + char dir[PATH_MAX] = {0}; + if (0 == readlink("/proc/self/exe", dir, PATH_MAX)) + return HGBASE_ERR_FAIL; + if (maxLen < strlen(dir) + 1) + return HGBASE_ERR_FAIL; + strcpy(name, dir); + } + else + { + Dl_info dlinfo; + if (0 == dladdr(addr, &dlinfo)) + return HGBASE_ERR_FAIL; + if (maxLen < strlen(dlinfo.dli_fname) + 1) + return HGBASE_ERR_FAIL; + strcpy(name, dlinfo.dli_fname); + } #else HMODULE hModule = NULL; GetModuleHandleExA(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS @@ -252,7 +264,7 @@ HGResult HGAPI HGBase_GetConfigPath(HGChar* configPath, HGUInt maxLen) return HGBASE_ERR_INVALIDARG; } - HGChar moduleName[56]; + HGChar moduleName[256]; HGBase_GetModuleName(NULL, moduleName, 256); HGChar modulePath[256]; HGBase_GetFilePath(moduleName, modulePath, 256); @@ -269,7 +281,7 @@ HGResult HGAPI HGBase_GetConfigPath(HGChar* configPath, HGUInt maxLen) #else if (dataPath[strlen(dataPath) - 1] != '/') strcat(dataPath, "/"); - strcat(cfgPath, "Cfg/"); + strcat(dataPath, "Cfg/"); #endif if (maxLen < strlen(dataPath) + 1) @@ -316,7 +328,7 @@ HGResult HGAPI HGBase_GetLogFilePath(HGChar* logFilePath, HGUInt maxLen) return HGBASE_ERR_INVALIDARG; } - HGChar moduleName[56]; + HGChar moduleName[256]; HGBase_GetModuleName(NULL, moduleName, 256); HGChar modulePath[256]; HGBase_GetFilePath(moduleName, modulePath, 256); @@ -333,7 +345,7 @@ HGResult HGAPI HGBase_GetLogFilePath(HGChar* logFilePath, HGUInt maxLen) #else if (dataPath[strlen(dataPath) - 1] != '/') strcat(dataPath, "/"); - strcat(cfgPath, "Cfg/"); + strcat(dataPath, "Cfg/"); #endif if (maxLen < strlen(dataPath) + 1) diff --git a/sdk/upload/main.cpp b/sdk/upload/main.cpp index c34876e3..a9505e21 100644 --- a/sdk/upload/main.cpp +++ b/sdk/upload/main.cpp @@ -108,4 +108,4 @@ int cgiMain() //´òÓ¡Êä³ö fprintf(cgiOut, "

upload file success.

\n"); return cgiFormSuccess; -} \ No newline at end of file +}