Linux系统中source是用来干嘛的~

Linux系统中source是用来干嘛的~,第1张

[误解]

#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 窗体的名称。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11214428.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存