POSIX.(1B)

명칭
posix1b - POSIX P1003-1B 확장

해설
POSIX. 1B 는 리얼타임 확장 및 POSIX. 1 에 대한 몇개의 공통된 Berkeley 확장을 추가합니다. 이 섹션은, 모순을 피하는 것 및 인터페이스의 버젼을 명시하기 위해서 요구된 능력을 위한 서포트를 추가하는 것에 대하여의, 예비적인 정보를 포함하고 있습니다.

스테이터스
1998 년 3 월 28 일: _POSIX_PRIORITY_SCHEDULING 는, 다음의 커널 옵션을 배치에 붙이는 것으로 동작합니다.

    options		"P1003_1B"
    options		"_KPOSIX_PRIORITY_SCHEDULING"

버젼의 명시
POSIX. 1B 의 버젼 및 프로그래밍 인터페이스를 설정하는, 3 개의 목록 정수가 있습니다.

    _POSIX_VERSION

(은)는 그 시스템이 어느 시스템을 위해서(때문에) 빌드 되었는지를 명시합니다. 디폴트는 POSIX. 1 및 199009L 입니다. POSIX. 1B 는 199309L 입니다. 이것은 operating system의 기본의 특징을 정의합니다.

    _POSIX_SOURCE

(은)는, 이름 공간에 있어 POSIX 및 ANSI 의 기능만 발생하는 것을 명시하기 위해서 정의하는 것이 가능한, POSIX. 1 으로부터의 매크로입니다.

    _POSIX_C_SOURCE

(은)는, 이름 공간에 있어 명시된 POSIX 버젼 이후의 POSIX 및 ANSI 의 기능만 발생하는 것을 명시하기 위해서 정의하는 것이 가능한, POSIX. 1B 로부터의 매크로입니다. 예를 들면, _POSIX_VERSION 이 199309L (POSIX. 1B)이지만 _POSIX_C_SOURCE 이 199009L (POSIX. 1)인 경우에는, POSIX. 1 의 기능만이 출현해야 합니다.

적절한 확장의 은폐
이하의 테스트 매크로가 <sys/_posix.h> 로 셋업 됩니다. 이것들을 시스템 헤더 파일로 사용하는 것으로, <sys/_posix.h> 그리고 보여지는 종류의 테스트를 피할 수 있습니다. 소스 프로그램은 이러한 FreeBSD 특유의 실장의 상세를 사용해야 하는 것이 아닙니다. _POSIX_VERSION, _POSIX_SOURCE 및 _POSIX_C_SOURCE 를 테스트해야 합니다. 그렇지만, 이러한 매크로는 커널 중(안)에서는 사용되어야 하는 것이 아닙니다. 왜냐하면, 커널은 user's area 의 _POSIX_VERSION 의 설정의 영향을 받아야 하는 것이 아니기 때문입니다. P1003_1B 옵션을 커널내에서 사용하는 것으로, 새로운 코드를 포함하는 것을 제한할 수 있습니다. 그렇지만, P1003_1B 옵션이 없는 커널상에서 POSIX. 1B 프로그램이 실행되었을 때에 사물이 정확하게 일하는 것을, 확인해 주세요.

    _P1003_1B_VISIBLE

(은)는 확장이 가시여야 한다 풀어에 해결하는 테스트 매크로입니다. 이것은 <sys/_posix.h> 으로 정의되고 있습니다.

통상의 C 프로그램 개발에서는, _POSIX_VERSION 만이 설정되어 프로그램에 BSD 확장이 가시이도록(듯이) 합니다. 그렇지만, POSIX. 1B 가 필수로 하는 신기능을 추가할 경우에는, 새로운 _POSIX_C_SOURCE 매크로에 의해 추가된 요구를 만족시키는 것이 중요합니다. _POSIX_VERSION, _POSIX_SOURCE, 및 _POSIX_C_SOURCE 의 편성이 그 확장이 스코프내인 것을 나타내고 있을 때는, _P1003_1B_VISIBLE (표준 기능 테스트 매크로는 아니다)(은)는 sys/unistd.h 로 정의됩니다.

    _P1003_1B_VISIBLE_HISTORICALLY

(은)는 역사적으로 시스템내에 있는 POSIX. 1B 확장을 조건부하기 위해서 존재합니다. _POSIX_SOURCE 및 _POSIX_C_SOURCE 가 전혀 설정되어 있지 않을 때, 또는 _POSIX_C_SOURCE 이 POSIX. 1B 의 기능을 유효하게 하고 있을 때, 이것들은 가시입니다. 이 기능 테스트의 의도는, BSD 확장을 가시로 하면서 새로운 확장을 불가시로 하는 것으로, _POSIX_C_SOURCE 의 "big hammar" ("대금추")의 사용을 시도하는 일 없이, 현존의 프로그램을 부수지 않게 하는 것입니다.

몇개의 최근의 헤더 파일에의 추가는 충분히 새롭기 때문에, _HISTORICALLY 대신에 _P1003_1B_VISIBLE 에 의존하도록(듯이) 변경해야 하는 것이지요.

현재는 POSIX. 1B 로 명시되고 있는 전통적인 BSD 헤더 파일 (예를 들면, mmap.h)은,<sys/_posix.h> 을 인클루드 하는 것 및 _P1003_1B_VISIBLE_HISTORICALLY 로 조건부하는 것이 가능합니다.

비표준 테스트 매크로

    _P1003_1B_INCLUDE_MAYBES

하지만 다른 모든 헤더 파일의 인클루드의 전으로 설정되었을 때에는, 표준 헤더가 인클루드 해 좋으면 POSIX. 1B 사양이 정했다 모든 헤더 파일이 인클루드 되도록, 요구합니다. 통상은, 불필요한 헤더는 인클루드 되지 않습니다. 이 프리프로세서 정의를 설정하는 것으로써, 사양에 따른 프로그램을, 헤더 파일의 인클루드의 문제 없이 컴파일 할 수 있도록(듯이) 합니다.

    P1003_1B

(은)는 커널내에 POSIX. 1B 서포트를 붙여 빌드하기 위한 콘피그오프션입니다.

역사
posix1b 섹션의 메뉴얼 페이지는 FreeBSD 3.0 그리고 등장했습니다.