我对"C标准库“和"C库”感到有点困惑,因为我发现"C库“中定义的许多头文件也是"C标准库”的一部分。
所以,我假设"C标准库“是ANSI C组织定义的库,在不同的平台( lib 32/Unix类)上有不同的实现,而"C库”只是Unix类OSes上"C标准库“的一个实现,对吗?
但是“specified”包含"C标准库“中没有指定的一些标头,例如<sys/types.h>、<sys/wait.h>和<pthread.h>。
以<pthread.h>为例,我假设它的"C标准库“对应的是<threads.h>,那么如果我想在Linux上编写多线程程序,我应该包括哪些头文件,<pthread.h>还是<threads.h>。
发布于 2012-02-21 11:44:15
POSIX是标准C库的超集,重要的是要注意它符合标准C库。如果C和POSIX曾经发生过冲突,C就赢了。
套接字、文件描述符、共享内存等都是POSIX的一部分,但在C库中不存在。
pthread.h用于POSIX线程,threads.h是C11的新头,是C库的一部分。也许在将来的某个时候,可能会因为支持C线程而不再推荐线程,但是您可能还不能指望C11有广泛的部署。因此,如果您想要可移植性,那么现在您应该更喜欢p线程。如果不考虑可移植性,而且您有可用的C11线程,则应该使用这些线程。
发布于 2012-02-21 11:43:28
C POSIX库是POSIX系统C标准库的规范。它是与ANSI C标准同时开发的。为使POSIX与标准C兼容作出了一些努力;POSIX在标准C中引入的功能之外还包括了额外的功能。
发布于 2016-06-22 13:23:24
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(E)和ISO/IEC 9899:1999/Cor.3。
引用ISO/IEC 9899:1999标准(下称ISO C标准)的部分内容来描述本卷POSIX.1-2008也规定的要求。本卷POSIX.1-2008中包含的一些函数和标头在ISO C标准中有一个版本;在本例中,CX标记是适当添加的,以显示ISO C标准的扩展位置(见代码)。本卷POSIX.1-2008与ISO C标准之间的任何冲突都是无意的。
我在:I never really understood: what is POSIX?列出了一些主要的API扩展
https://stackoverflow.com/questions/9376837
复制相似问题