Я немного смущен словами «C standard lib» и «C POSIX lib», потому что я обнаружил, что многие файлы заголовков, определенные в «C POSIX lib», также являются частью «C стандартная библиотека».Разница между стандартной библиотекой C и библиотекой C POSIX
Итак, я предполагаю, что «C standard lib» - это lib, определяемый организацией ANSI C, и существуют разные реализации на разных платформах (Win32/Unix-like), а «C POSIX lib» - это просто реализация для «C стандартной библиотеки» на Unix-подобных операционных системах, правильно?
Но «C POSIX lib» содержит некоторые заголовки, не указанные в «C standard lib», такие как <sys/types.h>
, <sys/wait.h>
и <pthread.h>
.
Возьмите <pthread.h>
в качестве примера, я полагаю, его «стандарт Lib C» двойник является <threads.h>
, то если я хочу написать многопоточную программу на Linux, что заголовочный файл я должен включать в себя, <pthread.h>
или <threads.h>
?
ANSI C был устаревшим начиная с 1990 года, когда C стал международным стандартом. С тех пор C поддерживается [рабочей группой ISO] (http://www.open-std.org/jtc1/sc22/wg14/). – Lundin
@ Lundin Полностью ерунда. ANSI C является не чем иным, как устаревшим. Фактически C11 был принят INCITS в качестве стандарта ANSI, известного как [INCITS/ISO/IEC 9899-2012] (http://webstore.ansi.org/RecordDetail.aspx?sku=INCITS%2FISO%2FIEC+9899-2012) который является новым стандартом ANSI C. – Wiz
@Wiz Это международный стандарт, и это международный сайт. Имея это в виду, не имеет смысла говорить об ANSI C с 1990 года. Это то же самое, что если бы я начал ссылаться на C на этом сайте как «SS C», поскольку я из Швеции и шведского стандарта называется SS/ISO/IEC 9899. – Lundin