[pulseaudio-discuss] [PATCH 2/8] util: implement pa_get_binary_name() for Mac OS X
Daniel Mack
zonque at gmail.com
Fri Apr 22 05:27:38 PDT 2011
---
src/pulse/util.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/src/pulse/util.c b/src/pulse/util.c
index c5cfc8c..e44a864 100644
--- a/src/pulse/util.c
+++ b/src/pulse/util.c
@@ -49,6 +49,11 @@
#include <sys/prctl.h>
#endif
+#ifdef OS_IS_DARWIN
+#include <libgen.h>
+#include <sys/sysctl.h>
+#endif
+
#include <pulse/xmalloc.h>
#include <pulse/timeval.h>
@@ -221,6 +226,27 @@ char *pa_get_binary_name(char *s, size_t l) {
}
#endif
+#if OS_IS_DARWIN
+ {
+ int mib[] = { CTL_KERN, KERN_PROCARGS, getpid(), 0 };
+ size_t len, nmib = (sizeof(mib) / sizeof(mib[0])) - 1;
+ char *buf;
+
+ sysctl(mib, nmib, NULL, &len, NULL, 0);
+ buf = (char *) pa_xmalloc(len);
+
+ if (sysctl(mib, nmib, buf, &len, NULL, 0) == 0) {
+ pa_strlcpy(s, basename(buf), l);
+ pa_xfree(buf);
+ return s;
+ }
+
+ pa_xfree(buf);
+
+ /* fall thru */
+ }
+#endif /* OS_IS_DARWIN */
+
errno = ENOENT;
return NULL;
}
--
1.7.1
More information about the pulseaudio-discuss
mailing list