]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sys_shared.c
Add hook.[ch] to VS2017 project.
[xonotic/darkplaces.git] / sys_shared.c
index 5171b34efaa180ead097559b1e4f835efab6b6dc..0db4c03479474e7fd81432ecb3f708d9e546111c 100644 (file)
@@ -18,6 +18,9 @@
 #pragma comment(lib, "winmm.lib")
 #endif
 #else
+# ifdef __FreeBSD__
+#  include <sys/sysctl.h>
+# endif
 # include <unistd.h>
 # include <fcntl.h>
 # include <sys/time.h>
@@ -498,7 +501,12 @@ static const char *Sys_FindExecutableName(void)
        static char exenamebuf[MAX_OSPATH+1];
        ssize_t n = -1;
 #if defined(__FreeBSD__)
-       n = readlink("/proc/curproc/file", exenamebuf, sizeof(exenamebuf)-1);
+       int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+       size_t exenamebuflen = sizeof(exenamebuf)-1;
+       if (sysctl(mib, 4, exenamebuf, &exenamebuflen, NULL, 0) == 0)
+       {
+               n = exenamebuflen;
+       }
 #elif defined(__linux__)
        n = readlink("/proc/self/exe", exenamebuf, sizeof(exenamebuf)-1);
 #endif