Revision 92c0e657
b/vl.c | ||
---|---|---|
52 | 52 |
#include <sys/stat.h> |
53 | 53 |
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) |
54 | 54 |
#include <libutil.h> |
55 |
#include <sys/sysctl.h> |
|
55 | 56 |
#else |
56 | 57 |
#include <util.h> |
57 | 58 |
#endif |
... | ... | |
2276 | 2277 |
} |
2277 | 2278 |
#elif defined(__FreeBSD__) |
2278 | 2279 |
{ |
2279 |
int len; |
|
2280 |
len = readlink("/proc/curproc/file", buf, sizeof(buf) - 1); |
|
2281 |
if (len > 0) { |
|
2282 |
buf[len] = 0; |
|
2280 |
static int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; |
|
2281 |
size_t len = sizeof(buf) - 1; |
|
2282 |
|
|
2283 |
*buf = '\0'; |
|
2284 |
if (!sysctl(mib, sizeof(mib)/sizeof(*mib), buf, &len, NULL, 0) && |
|
2285 |
*buf) { |
|
2286 |
buf[sizeof(buf) - 1] = '\0'; |
|
2283 | 2287 |
p = buf; |
2284 | 2288 |
} |
2285 | 2289 |
} |
Also available in: Unified diff