我想知道如何检测程序正在运行的平台,我有一个应用程序,需要它转到某个文件夹,具体取决于它是在 Linux 还是 Mac 机器上。
谢谢!
您可能需要专门为 Mac 或 Linux 编译程序,因此您可以使用某种预处理器指令。这个宏列表可能会有所帮助。
将来它可能会中断,但就目前而言,您可以利用两者之间的大量文件系统差异。
如果您将这些路径检查技巧中的几个组合到一个函数中,您可以将自己与任何一个独立失败的技巧隔离开来。
您可以使用 stat 检查文件夹是否存在。
struct stat st;
if(stat("/proc",&st) == 0) {
printf(" /proc is present: this may be Linux\n");
}
uname()系统调用会告诉你操作系统的版本
如果你知道你是 Unix,运行 'uname' 会告诉你很多关于系统的信息。如果您需要了解更多信息。当然,这依赖于外部可执行文件。
您应该可以检查环境变量,但我不确定哪些。