有一些C的方式来弄清楚什么类型的操作系统正在运行的程序? 我必须这样做,因为我必须根据操作系统运行特定的系统调用。Ç - 了解操作系统类型
if(OS == OSX)
system("open graph.dot");
els if(OS == LINUX)
system("xdg-open graph.dot")
我试着用这个代码:
#ifdef defined(__APPLE__) && defined(__MACH__)
system("open graph.png");
#endif
#ifdef defined(__WINDOWS__)
system("start graph.png");
#endif
#ifdef defined(__linux__)
system("xdg-open graph.png");
#endif
但我有这样的警告:
警告:在#ifdef指令的末尾额外的令牌
'系统()'被** **未A *系统调用* –
通常,编译器的目标OS由编译器常数确定。将'#ifdef's用于编译该操作系统的代码(在其中使用正确的系统调用)。 –
一个人通常在* build *时间处理这类问题,而不是*运行*时间。毕竟,为Linux构建的二进制文件通常不会在OSX上运行(更直接),或者更普遍的情况是,在除Linux以外的任何操作系统上运行。 –