/* +----------------------------------------------------------------------+ | HipHop for PHP | +----------------------------------------------------------------------+ | Copyright (c) 2010-2013 Facebook, Inc. (http://www.facebook.com) | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | http://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ */ #include "hphp/util/current_executable.h" #include #include namespace HPHP { std::string current_executable_path() { #ifdef __linux__ char result[PATH_MAX]; ssize_t count = readlink("/proc/self/exe", result, PATH_MAX); return std::string(result, (count > 0) ? count : 0); #elif defined(__APPLE__) char result[PATH_MAX]; uint32_t size = sizeof(result); uint32_t success = _NSGetExecutablePath(result, &size); return std:string(result, (success == 0) ? size : 0); #else // Return empty string for all other platforms for now (e.g. FreeBSD) return std::string(); #endif } }