ProgramingTip

C 표준 라이브러리와 C POSIX 라이브러리의 차이점

bestdevel 2020. 11. 25. 08:13
반응형

C 표준 라이브러리와 C POSIX 라이브러리의 차이점


"C 표준 lib"와 "C POSIX lib"에 혼란 스러웠습니다. "C POSIX lib"에 정의 된 많은 헤더 파일도 "C 표준 lib"의 일부라는 것을 알았 기 때문입니다.

그래서 "C 표준 lib"는 ANSI C 조직에서 정의한 lib이고 다른 플랫폼 (Win32 / Unix와 같은)에서 다른 것이 "C POSIX lib"는 "C 표준의 구현 일뿐"이라고 가정합니다. 유닉스 계열 OS에서는 lib "가 맞죠?

그러나 "C POSIX lib"에는 "C 표준 lib"에 지정되지 않은 헤더 일부 (예 : <sys/types.h>,, <sys/wait.h>)가 포함되어 <pthread.h>있습니다.

가지고 <pthread.h>예를 들어, 나는 그것의 "C 표준 LIB"상대는 가정 <threads.h>내가이 포함되어야 헤더 파일을 리눅스에 멀티 프로그램을 작성하려는 경우, 다음, <pthread.h>또는 <threads.h>?


POSIX는 표준 C 라이브러리의 상위 집합이며 이에 따라 중요는 점에 유의하는 것이됩니다. C와 POSIX가 충돌하면 C가이 경쟁합니다.

소켓, 파일 설명자, 공유 메모리 등은 모두 POSIX의 일부이지만 C 라이브러리에는 존재하지 않습니다.

pthread.hPOSIX는 사용에 사용되며 threads.hC11의 새 헤더이며 C 라이브러리의 일부입니다. 아마도 pthread는 미래에 C를 선호하여 더 이상 사용하지 않을 것입니다. 그러나 아직 C11이 널리 배포되지 않습니다. 이식성을 지금은 선호해야합니다. 이식성이없는 경우 C11의 경우 사용할 수 없습니다.


C POSIX 라이브러리는 POSIX 시스템 용 C 표준 라이브러리의 사양입니다. ANSI C 표준과 동시에 개발되었습니다. POSIX가 표준 C와 호환하기 위해 약간의 노력이 있습니다. POSIX에는 표준 C에 추가 기능이 포함되어 있습니다.


POSIX 7 견적

http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap01.html#tag_14_01

1.1 다른 공식 표준과의 관계

이 POSIX.1-2008 볼륨이 다음 표준과 완전히 일치하도록 세심한주의를 기울였습니다.

ISO C (1999) ISO / IEC 9899 : 1999, 프로그래밍 언어 -C, ISO / IEC 9899 : 1999 / Cor. 1 : 2001 (E), ISO / IEC 9899 : 1999 / Cor. 2 : 2004 (E), ISO / IEC 9899 : 1999 / Cor. 3.

ISO / IEC 9899 : 1999 표준 (이하 ISO C 표준이라고 함)의 일부는 POSIX.1-2008 의이 볼륨에서 요구하는 요구 사항을 설명하기 위해 참조됩니다. 이 POSIX.1-2008 볼륨에 포함 된 일부 기능 및 헤더는 ISO C 표준 버전을 가지고 있습니다. 이 경우 ISO C 표준이 확장 된 위치를 표시하기 위해 CX 마킹이 설명하게 추가됩니다 (코드 참조). 이 POSIX.1-2008 볼륨과 ISO C 표준 충돌은 의도하지 않은 것입니다.

몇 가지 주요 API 확장을 준비했습니다. 정말 이해하지 않아 : POSIX가 무엇입니까?


ANSI C는 여전히 살아 있다고 생각합니다. ANSI C는 ISO C, Cxx에 의해 상속되고 확장됩니다. POSIX는 ANSI C를 절대적으로 준수하고 있습니다. "

우리는 Windows, Unix와 유사하며, 장치에서 쉽게 ANSI C를 사용할 수 있습니다. 그러나 Cxx 또는 POSIX에 문제가있을 수 있습니다.

참고 URL : https://stackoverflow.com/questions/9376837/difference-between-c-standard-library-and-c-posix-library

반응형