Arquivos
hhvm/hphp/util/current_executable.cpp
T
Daniel Sloof 77fb706e57 fix build error on OSX
- fix typo in embedded_data.cpp
2013-07-23 11:44:15 -07:00

44 linhas
1.6 KiB
C++

/*
+----------------------------------------------------------------------+
| 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 <unistd.h>
#include <limits.h>
#ifdef __APPLE__
#include <mach-o/dyld.h>
#endif
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
}
}