2011-04-26 2 views

답변

53

예. POSIX는 Unix 계열 운영 체제 용 이식 가능한 API를 결정하는 표준 그룹입니다. Mac OSX는 Unix 기반이며 이에 따라 POSIX와 호환됩니다. POSIX는 특정 시스템 호출을 사용할 수 있음을 보증합니다.

Mac은 기본적으로 POSIX 호환이 필요한 API를 충족시켜 POSIX OS로 만듭니다.

모든 Linux 버전은 POSIX 호환이 아닙니다. 2.6 이전의 커널 버전은 호환되지 않았으며, 오늘날 리눅스는 공식적으로 POSIX와 호환되지 않습니다. 왜냐하면 인증을 얻지 못해서 리눅스가 POSIX와 호환되지 않기 때문입니다. 그럼에도 불구하고 리눅스는 거의 모든 의도와 목적을 위해 POSIX 시스템으로 취급 될 수 있습니다.

+2

휴대용 API가 무엇 ? –

+1

@ z-buffer 특정 시스템 호출을 통해 사용할 수 있습니다. 'stat()','read()'등 –

+0

많은 리눅스 시스템 버전이있다. 리눅스 때문에 POSIX가 만들어 졌나요? –

2

POSIX는 스펙입니다 http://www.unix.org/what_is_unix/single_unix_specification.html AFAIK, 리눅스 스펙을 준수하지만, 아직 인증되지 않은

+3

재미있는 몇 가지 문제가 있습니다. 예를 들어 POSIX를 고수하면서'_POSIX_C_SOURCE'라는 값을 가진 '200809L'을 지정하여 환경을 준수하는 프로그램은 충분하지 않습니다. 하나는 문제가 있습니다. GCC 확장은'realpath' 함수입니다 ** ** POSIX에 의해 ** 지정되었습니다 - 값이 '700'인 비표준'_XOPEN_SOURCE'를 지정하지 않았다면 프로그램에 컴파일하는 데 문제가있었습니다. 그다지 중요하지 않지만 (후자 플래그의 존재는 POSIX에 대한 막연함이 ​​아니지만 이식성은 훨씬 적습니다), 확실히 잔소리입니다. 'man 2 realpath'를 보라. – amn