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

 我来答
我Q80018_860_6
2016-12-02 · TA获得超过125个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:137万
展开全部
如何判断当前是什么操作系统?

#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
如此,源代码就很容易的适应不同的操作系统了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式