feature_test_macros man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

FEATURE_TEST_MACROS(7)	   Linux Programmer's Manual	FEATURE_TEST_MACROS(7)

NAME
       feature_test_macros - feature test macros

SYNOPSIS
       #include <features.h>

DESCRIPTION
       Feature	test  macros  allow  the programmer to control the definitions
       that are exposed by system header files when  a	program	 is  compiled.
       This  can  be  useful for creating portable applications, by preventing
       non-standard definitions from being exposed.  Other macros can be  used
       to  expose  non-standard	 definitions  that are not exposed by default.
       The precise effects of each of the feature test macros described	 below
       can be ascertained by inspecting the <features.h> header file.

       In  order  to be effective, a feature test macro must be defined before
       including any header files.  This can either be done in the compilation
       command	(cc  -DMACRO=value) or by defining the macro within the source
       code before including any headers.

       Linux/glibc understands the following feature test macros:

       _POSIX_C_SOURCE
	      Defining this macro with the value  1  causes  header  files  to
	      expose  definitions conforming to POSIX.1-1990 and ISO C (1990).
	      Defining with the value 199309 or greater	 additionally  exposes
	      definitions  for POSIX.1b (real-time extensions).	 Defining with
	      the value 199506 or greater additionally exposes definitions for
	      POSIX.1c (threads).  Defining with the value 200112 exposes def‐
	      initions corresponding to the  POSIX.1-2001  base	 specification
	      (excluding the XSI extension).

       _POSIX_SOURCE
	      Defining	this  obsolete	macro  with any value is equivalent to
	      defining _POSIX_C_SOURCE with the value 1.

       _XOPEN_SOURCE
	      Defining this macro with any value causes header files to expose
	      definitions  conforming to POSIX.1, POSIX.2, and XPG4.  Defining
	      with the value 500 or greater additionally  exposes  definitions
	      for  SUSv2  (UNIX	 98).	Defining with the value 600 or greater
	      additionally exposes definitions for SUSv3 (UNIX 03;  i.e.,  the
	      POSIX.1-2001 base specification plus the XSI extension) and C 99
	      definitions.

       _XOPEN_SOURCE_EXTENDED
	      If this macro is defined with the value 1, and the _XOPEN_SOURCE
	      is  defined, then expose definitions corresponding to the XPG4v2
	      UNIX extensions.

       _ISOC99_SOURCE
	      Exposes C 99 extensions to ISO C (1990).

       _LARGEFILE64_SOURCE
	      Expose definitions for the alternative API specified by the  LFS
	      (Large  File  Summit)  as	 a "transitional extension" the Single
	      UNIX     Specification.	    (See      http://ftp.sas.com/stan‐
	      dards/large.file/.)

       _FILE_OFFSET_BITS
	      Defining	this  macro  with  the value 64 automatically converts
	      references to 32-bit functions and data types  related  to  file
	      I/O  and	file system operations into references to their 64-bit
	      counterparts.  This is useful for performing I/O on large	 files
	      (> 2 Gigabytes) on 32-bit systems.

       _BSD_SOURCE
	      Defining	this macro with any value cause header files to expose
	      BSD-derived definitions.	Defining this macro  also  causes  BSD
	      definitions  to  be preferred in some situations where standards
	      conflict.

       _SVID_SOURCE
	      Defining this macro with any value cause header files to	expose
	      System V-derived definitions.  (SVID == System V Interface Defi‐
	      nition; see standards(7).)

       _GNU_SOURCE
	      Defining this macro (with any value) is equivalent  to  defining
	      _BSD_SOURCE,  _SVID_SOURCE,  _LARGEFILE64_SOURCE, _ISOC99_SOURCE
	      _POSIX_C_SOURCE with the value 1999506, and  _XOPEN_SOURCE  with
	      the value 600.  In addition, various GNU-specific extensions are
	      also exposed.

       When gcc(1) is invoked, the following macros are	 defined  by  default:
       _BSD_SOURCE,  _SVID_SOURCE,  _POSIX_SOURCE,  and POSIX_C_SOURCE=199506.
       If individual macros are defined, then other macros are disabled unless
       they are also explicitly defined.  (Exception: if POSIX_C_SOURCE is not
       otherwise defined, then it is always defined  with  the	value  199506,
       unless  the compiler is invoked in one of its standard modes, e.g., the
       -std=c99 flag.)	Multiple macros can be defined; the results are	 addi‐
       tive.

CONFORMING TO
       POSIX.1	specifies  _POSIX_C_SOURCE,  _POSIX_SOURCE, and _XOPEN_SOURCE.
       _XOPEN_SOURCE_EXTENDED was specified by XPG4v2 (aka SUSv1).  _FILE_OFF‐
       SET_BITS	 is  not  specified  by	 any standard, but is employed on some
       other implementations.  _BSD_SOURCE, _SVID_SOURCE, and _GNU_SOURCE  are
       Linux (glibc) specific.

NOTES
       <features.h> is a Linux/glibc specific header file.  Other systems have
       an analogous file, but typically with a different  name.	  This	header
       file is automatically included by other header files as required: it is
       not necessary to explicitly include it in order to employ feature  test
       macros.

Linux				  2006-04-26		FEATURE_TEST_MACROS(7)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net