Implement PHP_BINARY PHP core predefined constant

Implement PHP_BINARY PHP core predefined constant. PHPUnit uses this constant in its self-test suite, causing many of them to fail on HHVM (possibly only because of the lack of this constant). Try to ninitially implement in such a way that it can be nimble enough for open-source, cross platform.
Esse commit está contido em:
Joel Marcey
2013-07-19 22:20:30 -07:00
commit de Sara Golemon
commit e6a11355a1
9 arquivos alterados com 96 adições e 21 exclusões
+39
Ver Arquivo
@@ -0,0 +1,39 @@
/*
+----------------------------------------------------------------------+
| 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>
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
}
}