
#define _XOPEN_SOURCE
决不是简单的宏定义
它是使程序符合系统环境的不可缺少的部分
[概念]
Glibc 所实现全部或部分规范下的功能有:
1.ISO C: C语言国际标准.
2.POSIX: *** 作系统的 ISO/IEC 9945 (aka IEEE 1003) 标准.
3.Berkeley Unix: BSD 和 SunOS.
4.SVID: V 系统接口描述.
5.XPG: The X/Open Portability Guide.
程序中,为了实现上述功能需要定义对应的宏。如第二个功能POSIX,应定义 _POSIX_SOURCE。类似的有 _BSD_SOURCE、_SVID_SOURCE、_XOPEN_SOURCE。
也就是说:
#define _XOPEN_SOURCE
是为了可以使用 5. The X/Open Portability Guide 的功能。
[实用方法]
使用上述五种功能的方法有两种:
1)在cc命令中指定,如:cc -D _POSIX_SOURCE file.c
2)将源程序的第一行设置为:#define _POSIX_SOURCE 1
[_XOPEN_SOURCE是什么?]
翻译成汉语表达很蹩脚,英文原版解释如下:
Macro: _XOPEN_SOURCE
If you define this macro, functionality described in the X/Open Portability Guide is included. This is a superset of the POSIX.1 and POSIX.2 functionality and in fact _POSIX_SOURCE and _POSIX_C_SOURCE are automatically defined.
As the unification of all Unices, functionality only available in BSD and SVID is also included.
If the macro _XOPEN_SOURCE_EXTENDED is also defined, even more functionality is available. The exa functions will make
返回或设置一个字符串表达式,指明最初生成错误的对象或应用程序的名称。可读 / 可写。说明Source 属性是字符串表达式,指定生成错误的对象;此表达式通常是这个对象的类名或程序设计的 ID。在程序代码无法处理被访问对象产生的错误时,请使用 Source 提供消息。对于类模块,Source 应该包含一个具有 project.class 窗体的名称。当代码中出现不可预料的错误时,Source 属性会自动填上数据。对于标准模块中的错误,Source 含有工程名称。对于类模块中的错误,Source 包含具有 project.class 窗体的名称。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)