[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH] Use sysctl instead of /proc to find executable path
From: |
Juergen Lock |
Subject: |
[Qemu-devel] [PATCH] Use sysctl instead of /proc to find executable path on FreeBSD |
Date: |
Thu, 25 Mar 2010 22:07:12 +0100 |
User-agent: |
Mutt/1.5.20 (2009-06-14) |
..since /proc usually isn't mounted on FreeBSD.
Signed-off-by: Juergen Lock <address@hidden>
--- a/vl.c
+++ b/vl.c
@@ -52,6 +52,7 @@
#include <sys/stat.h>
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ||
defined(__DragonFly__)
#include <libutil.h>
+#include <sys/sysctl.h>
#else
#include <util.h>
#endif
@@ -3368,10 +3369,13 @@ static char *find_datadir(const char *ar
}
#elif defined(__FreeBSD__)
{
- int len;
- len = readlink("/proc/curproc/file", buf, sizeof(buf) - 1);
- if (len > 0) {
- buf[len] = 0;
+ static int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
+ size_t len = sizeof(buf) - 1;
+
+ *buf = '\0';
+ if (!sysctl(mib, sizeof(mib)/sizeof(*mib), buf, &len, NULL, 0) &&
+ *buf) {
+ buf[sizeof(buf) - 1] = '\0';
p = buf;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] [PATCH] Use sysctl instead of /proc to find executable path on FreeBSD,
Juergen Lock <=