aboutsummaryrefslogtreecommitdiff
path: root/core/os/path_darwin.odin
blob: dbfdb584babb686c9e9834d7f239a4958854392b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package os

import "base:runtime"

import "core:sys/darwin"
import "core:sys/posix"

_get_executable_path :: proc(allocator: runtime.Allocator) -> (path: string, err: Error) {
	buffer: [darwin.PIDPATHINFO_MAXSIZE]byte = ---
	ret := darwin.proc_pidpath(posix.getpid(), raw_data(buffer[:]), len(buffer))
	if ret > 0 {
		return clone_string(string(buffer[:ret]), allocator)
	}

	err = _get_platform_error()
	return
}