瀏覽代碼

Fixed exe path issue

Brian Fiete 5 年之前
父節點
當前提交
3123aad0d1
共有 1 個文件被更改,包括 15 次插入7 次删除
  1. 15 7
      BeefySysLib/platform/posix/PosixCommon.cpp

+ 15 - 7
BeefySysLib/platform/posix/PosixCommon.cpp

@@ -542,13 +542,21 @@ BFP_EXPORT void BFP_CALLTYPE BfpSystem_Init(int version, BfpSystemInitFlags flag
 }
 
 BFP_EXPORT void BFP_CALLTYPE BfpSystem_SetCommandLine(int argc, char** argv)
-{    
-	char* relPath = argv[0];
-
-	char* cwd = getcwd(NULL, 0);
-	gExePath = GetAbsPath(relPath, cwd);
-	free(cwd);
-
+{	
+    char exePath[PATH_MAX] = { 0 };
+    int nchar = readlink("/proc/self/exe", exePath, PATH_MAX);
+    if (nchar > 0)
+    {
+        gExePath = exePath;
+    }
+    else
+    {
+        char* relPath = argv[0];
+        char* cwd = getcwd(NULL, 0);
+        gExePath = GetAbsPath(relPath, cwd);
+        free(cwd);
+    }    
+	
 	for (int i = 0; i < argc; i++)
 	{
 		if (i != 0)