5 const char* vm_executable_path() {
8 /* readlink is called in a loop with increasing buffer sizes in case
9 someone tries to run Factor from a incredibly deeply nested
12 char* buf = new char[bufsiz + 1];
13 ssize_t size= readlink("/proc/self/exe", buf, bufsiz);
15 fatal_error("Cannot read /proc/self/exe", errno);
18 /* Buffer was large enough, return string. */
20 const char* ret = safe_strdup(buf);
24 /* Buffer wasn't big enough, double it and try again. */