我正在使用CentOS,并尝试将perl代码转换为C ++。在perl中我们可以使用
检测操作系统$^O or we can print: print "S^O";
o/p: linux
我们在C ++中有任何功能,它将完成这项工作。 提前致谢。
答案 0 :(得分:0)
通常有两种方式:
操作系统通过宏嗅探
例如。如果定义了WIN32
,那么您就在Windows上。
标题搜索路径 必须为每个平台构建C ++程序。只需定义标题搜索路径,即可找到平台的相关标题版本。
对于操作系统嗅探,请查看the macro list at SourceForge(AFAIK那里只有一个这样的项目)。
答案 1 :(得分:0)
@Joachim Pileborg感谢您的建议...对于uname系统调用...从以下代码我可以得到系统信息。
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <sys/utsname.h>
int main(void) {
struct utsname buffer;
errno = 0;
if (uname(&buffer) != 0) {
perror("uname");
exit(EXIT_FAILURE);
}
printf("system name = %s\n", buffer.sysname);
printf("node name = %s\n", buffer.nodename);
printf("release = %s\n", buffer.release);
printf("version = %s\n", buffer.version);
printf("machine = %s\n", buffer.machine);
return EXIT_SUCCESS;
}