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