diff options
Diffstat (limited to 'src/file.cc')
| -rw-r--r-- | src/file.cc | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/file.cc b/src/file.cc index ced88614..0e6b1e61 100644 --- a/src/file.cc +++ b/src/file.cc @@ -12,6 +12,10 @@ #include <unistd.h> #include <dirent.h> +#if defined(__FreeBSD__) +#include <sys/sysctl.h> +#endif + #if defined(__APPLE__) #include <mach-o/dyld.h> #define st_mtim st_mtimespec @@ -491,6 +495,11 @@ String get_kak_binary_path() kak_assert(res != -1); buffer[res] = '\0'; return buffer; +#elif defined(__FreeBSD__) + int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; + size_t res = sizeof(buffer); + sysctl(mib, 4, buffer, &res, NULL, 0); + return buffer; #elif defined(__APPLE__) uint32_t bufsize = 2048; _NSGetExecutablePath(buffer, &bufsize); |
