中易网

如何用c语言获取当前操作系统的类型

答案:1  悬赏:0  
解决时间 2021-01-14 17:12
  • 提问者网友:辞取
  • 2021-01-13 19:17
如何用c语言获取当前操作系统的类型
最佳答案
  • 二级知识专家网友:一把行者刀
  • 2021-01-13 20:35
如何判断当前是什么操作系统?

#if defined(_AIX) // IBM AIX
... ...
#endif

#if defined(__sun) // SUN OS
... ...
#endif

linux下定义了 "linux", Sco Openserver下定义了unix

上面的方法有时候不是很确定,也不好自己掌握和控制,下面探讨一下另一个方法:
在UNIX下有一个uname的命令,在不同的操作系统下有不同的返回, 例如:
SCO: SCO_SV
Linux: Linux
AIX: AIX
Unixware: UnixWare

可以在makefile文件中增加如下句子来判断当前的操作系统类型,和编译选择:

OSTYPE=`uname`
CFLAGS_SCO = -D SCO_SV
CFLAGS_LINUX = -D AIX

prog:
@if [ "$(OSTYPE)" = 'SCO_SV' ];then make prog1;else make prog2;fi

prog1:
$(CC) -o tt tt.c $(CFLAGS_SCO)

prog2:
$(CC) -o tt2 tt2.c $(CFLAGS_AIX)

如上在编译命令行中增加-D SCO_SV的定义, 程序的源代码中可以如下使用:
#ifdef SCO_SV
typedef unsigned int socklen_t;
#endif
如此,源代码就很容易的适应不同的操作系统了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息