Tweak the FreeBSD version of proc_self_dirname() to work on NetBSD

and use it.
This commit is contained in:
Jason Thorpe 2024-03-02 18:06:27 -08:00
parent 1a40ae75d4
commit 98d4c3d7c3
1 changed files with 6 additions and 2 deletions

View File

@ -32,7 +32,7 @@
# include <unistd.h>
#endif
#ifdef __FreeBSD__
#if defined(__FreeBSD__) || defined(__NetBSD__)
# include <sys/sysctl.h>
#endif
@ -51,10 +51,14 @@ std::string proc_self_dirname()
buflen--;
return std::string(path, buflen);
}
#elif defined(__FreeBSD__)
#elif defined(__FreeBSD__) || defined(__NetBSD__)
std::string proc_self_dirname()
{
#ifdef __NetBSD__
int mib[4] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME};
#else
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
#endif
size_t buflen;
char *buffer;
std::string path;