From 1b1c13e3debcfdc66d9fd94ea7ba08eb1f788595 Mon Sep 17 00:00:00 2001 From: Alexey Dokuchaev Date: Sun, 13 Nov 2022 15:46:42 +0100 Subject: [PATCH] Add missing `get_exe_filename()` implementation for FreeBSD --- src/main.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main.c b/src/main.c index 9784c0ac..e9a612f8 100644 --- a/src/main.c +++ b/src/main.c @@ -7,11 +7,14 @@ #ifdef _WIN32 #include -#elif __linux__ || __FreeBSD__ +#elif __linux__ #include #include #elif __APPLE__ #include +#elif __FreeBSD__ + #include + #include #endif @@ -43,6 +46,10 @@ static void get_exe_filename(char *buf, int sz) { char exepath[size]; _NSGetExecutablePath(exepath, &size); realpath(exepath, buf); +#elif __FreeBSD__ + size_t len = sz; + const int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; + sysctl(mib, 4, buf, &len, NULL, 0); #else strcpy(buf, "./lite"); #endif