Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
POSIX.1B(9)		 BSD Kernel Developer's	Manual		   POSIX.1B(9)

NAME
     posix1b --	Posix P1003-1B extensions

DESCRIPTION
     POSIX.1B adds real	time extensions	and some commonly used Berkeley	exten-
     sions to POSIX.1.	This section contains preliminary information about
     avoiding conflicts	and adding support for the required ability to specify
     the interface version.

STATUS
     March 28, 1998: _POSIX_PRIORITY_SCHEDULING	works with these kernel	op-
     tions in your configuration:

     options	     "P1003_1B"
     options	     "_KPOSIX_PRIORITY_SCHEDULING"

SPECIFYING THE VERSION
     There are three manifest constants	that set the version and programming
     interface for POSIX.1B.

     _POSIX_VERSION
     specifies the system for which the	system is built.  The default is
     POSIX.1 and is 199009L.  POSIX.1B is 199309L.  This defines the base fea-
     tures of the operating system.

     _POSIX_SOURCE
     is	a macro	from POSIX.1 that can be defined to specify that only POSIX
     and ANSI functionality should occur in the	name space.

     _POSIX_C_SOURCE
     is	a macro	from POSIX.1B that can be defined to specify that only POSIX
     and ANSI functionality from a specific POSIX version should occur in the
     name space, i.e., if _POSIX_VERSION is 199309L (POSIX.1B) but
     _POSIX_C_SOURCE is	199009L	(POSIX.1) then only POSIX.1 features should
     appear.

PROPERLY HIDING	EXTENSIONS
     The following test	macros are set up in <sys/_posix.h>.  They should used
     by	system header files to avoid the kind of tests you see in
     <sys/_posix.h>.  Source programs should not use these FreeBSD specific
     implementation details and	should test _POSIX_VERSION, _POSIX_SOURCE and
     _POSIX_C_SOURCE.  These should not	be used	in the kernel though - the
     kernel should be immune to	the user land setting of _POSIX_VERSION.  The
     P1003_1B option can be used in the	kernel to limit	inclusion of new code,
     but make sure things work properly	when a POSIX.1B	program	is run on a
     kernel without the	P1003_1B option.

     _P1003_1B_VISIBLE
     is	a test macro that sorts	out when extensions should be visible.	It is
     defined in	<sys/_posix.h>.

     In	normal C program development only _POSIX_VERSION is set, permitting
     BSD extensions to appear to the programs.	However, when adding new func-
     tionality mandated	by POSIX.1B, it	is important to	satisfy	the require-
     ments added by the	new _POSIX_C_SOURCE macro.  _P1003_1B_VISIBLE (not a
     standard feature test macro) is defined in	sys/unistd.h when the combina-
     tion of _POSIX_VERSION, _POSIX_SOURCE, and	_POSIX_C_SOURCE	indicate that
     the extensions are	in scope.

     _P1003_1B_VISIBLE_HISTORICALLY
     is	present	to conditionalize POSIX.1B extensions that were	historically
     in	the system.  These are visible when _POSIX_SOURCE and _POSIX_C_SOURCE
     are not set at all	or when	_POSIX_C_SOURCE	enables	POSIX.1B features.
     The intent	of this	feature	test is	to permit hiding the new extensions
     while still letting BSD extensions	show up	to avoid breaking existing
     programs without trying to	use the	"big hammer" of	_POSIX_C_SOURCE.

     Some recent additions to header files are new enough that they should be
     changed to	be dependent on	_P1003_1B_VISIBLE instead of _HISTORICALLY.

     Traditional BSD headers (e.g., mmap.h) now	specified in POSIX.1B can in-
     clude <sys/_posix.h> and conditionalize BSD extensions on _P1003_1B_VISI-
     BLE_HISTORICALLY.

NON STANDARD TEST MACROS
     _P1003_1B_INCLUDE_MAYBES
     when set before the inclusion of any other	header file requests that all
     header files that the POSIX.1B spec says a	standard header	may include
     should be included.  Normally no non-required headers are included.  Set-
     ting this pre-processor definition	should make any	compliant program com-
     pile without issues of header file	inclusion.

     P1003_1B
     is	a config option	to build in POSIX.1B support in	the kernel.

HISTORY
     The posix1b section manual	page appeared in FreeBSD 3.0.

BSD				 March 1, 1998				   BSD

NAME | DESCRIPTION | STATUS | SPECIFYING THE VERSION | PROPERLY HIDING EXTENSIONS | NON STANDARD TEST MACROS | HISTORY

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=p1003_1b&sektion=9&manpath=FreeBSD+4.9-RELEASE>

home | help