D_GNU_SOURCE的解释为什么要使用它以及何时使用?

前端之家收集整理的这篇文章主要介绍了D_GNU_SOURCE的解释为什么要使用它以及何时使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道这是一个我们传递给函数的宏.你如何解释这个宏的用途,以及在哪种场景中我必须使用它?

解决方法

鉴于开发的应用程序符合 POSIX.1 – (IEEE 1003.1-2008,ISO / IEC 9945:2009)和/或 Single Unix Specification 2008(带有X / Open Curses的ISO / IEC 9945:2009),有助于确保应用程序的可移植性. _GNU_SOURCE很可能将源代码使用限制在GNU / Linux和GNU / Hurd系统中,除非进行额外的工作以解决此类功能在其他平台上的不可移植性.

一些公司和政府/军事合同可能需要使用某些平台标准.

如果您正在开发一个开源/自由软件应用程序,您希望在多个Unix和类Unix系统(包括可提供POSIX兼容性的Microsoft Windows NT,2000和更新版本)上使用,那么将开发限制为POSIX.1库函数使这个任务更容易.其他目标包括免费/开放BSD平台NetBSD,FreeBSD,OpenBSD,DragonflyBSD,以及不包含_GNU_SOURCE功能的商业Unix系统(Solaris,AIX,HP / UX等).

如果你使用便携式函数的改变功能,我想不出一个例子,但我相信它们确实存在,它可能会在非GNU平台中产生微妙的错误.

所以一般来说,如果您的开发已经锁定在GNU / Linux和GNU / Hurd中,那么可以随意使用这些扩展,但是对于可能部署在其他Unix和类Unix操作系统上的任何应用程序,请避免使用这些扩展.

我从一个已经从其他两个Unix平台移植到Linux的大型代码库上工作,我们确实使用了_GNU_SOURCE扩展,但大部分开发仅限于现代POSIX或IEEE 1003.1 / Single Unix Spec和C99(标准C库)标准,以便将来兼容.

原文链接:https://www.f2er.com/c/116963.html

猜你在找的C&C++相关文章