【发布时间】:2017-02-08 15:46:15
【问题描述】:
readLink() 存在于 linux 中,并在 unistd.h 中定义,请提供 windows 中的任何类似类型的函数,否则我们是否可以制作具有类似功能的函数。我想使用相同的功能作为 readLink() 请提供一个用户定义的函数来替换函数,以防没有预定义的函数 提供代码快照
char buffer[2048];
readlink("/proc/self/exe", buffer, 2048);
std::stringstream ss;
ss << buffer;
std::string exeFile = ss.str();
std::string directory;
const size_t last_slash_idx = exeFile.rfind('/');
if (std::string::npos != last_slash_idx)
{
directory = exeFile.substr(0, last_slash_idx);
}
return directory;
#endif
【问题讨论】:
-
readlink特定于 Linux。您是否使用 Visual Studio 构建 linux 应用程序?如果没有,您希望readlink在没有符号链接的 Windows 上做什么? -
是的,我正在使用 Visual Studio,该应用程序应该也适用于 linux 和 windows
-
事情并非如此。为 Windows 构建的二进制文件不会在 Linux 中运行(没有其他魔法)。
-
我的应用程序可以检测机器的平台,并且可以在没有用户输入的情况下相应地工作
-
你没有抓住重点。 Readlink 及其功能与 Windows 无关。您需要弄清楚 linux 版本对 readlink 的作用,而不仅仅是单独查看 readlink。