75 uint32_t buf_size = 0;
76 const int rc = _NSGetExecutablePath(
NULL, &buf_size);
80 char *
path = calloc(1, buf_size);
87 if (_NSGetExecutablePath(
path, &buf_size) < 0) {
110 const DWORD size = path_size == 0 ? 1024 : (path_size * 2);
111 char *
const p = realloc(
path, size);
121 rc = GetModuleFileNameA(
NULL,
path, path_size);
127 }
while ((DWORD)rc == path_size);
132 for (
size_t i = 0;
path[i] !=
'\0'; ++i) {
133 if (
path[i] ==
'\\') {
161 int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
162 static const size_t MIB_LENGTH =
sizeof(mib) /
sizeof(mib[0]);
167 if (sysctl(mib, MIB_LENGTH,
NULL, &buf_size,
NULL, 0) < 0) {
170 assert(buf_size > 0);
173 char *buf = calloc(1, buf_size);
180 if (sysctl(mib, MIB_LENGTH, buf, &buf_size,
NULL, 0) == 0) {