読者です 読者をやめる 読者になる 読者になる

C/C++のAPIの規格

標準Cライブラリ、POSIXなどの単語は知っているものの、厳密な規格は分かっていなかったので調べました。

標準Cライブラリ

Cの規格はISO/IEC 9899で定義されているそうです。APIについても同時に定義されているようです。

俗称 ISO JIS
C89? C90 ISO/IEC 9899:1990 JIS X 3010-1993
C95 ISO/IEC 9899/AMD1:1995 JIS X 3010:1993/AMENDMENT 1:1996
C99 ISO/IEC 9899:1999 JIS X 3010:2003
C11 ISO/IEC 9899:2011

The Standard - C

標準C++ライブラリ

C++の規格はISO/IEC 14882で定義されてるそうです。

俗称 互換のあるCの規格 ISO JIS
C++98 C90 ISO/IEC 14882:1998
C++03 C95 ISO/IEC 14882:2003 JIS X 3014:2003
C++11 C99 ISO/IEC 14882:2011
C++14 C99? ISO/IEC 14882:2014

POSIX (Portable Operating System Interface for uniX) / SUS (Single UNIX Specification)

POSIXやSUSはAPIの提示だけでなく、ファイル構成やコマンドも含んでいます。 表の前半部分は多分UNIX戦争の影響なのでしょうか。

マーク ベースとなるPOSIX POSIXの規格 SUSのバージョン
UNIX 93
UNIX 95
UNIX 98 SUSv2
UNIX 03 POSIX:2001 IEEE Std 1003.1-2001 SUSv3
POSIX:2004 IEEE Std 1003.1-2004
POSIX:2008 IEEE Std 1003.1-2008 SUSv4

WikipediaではANSI/ISO C ⊂ POSIX.1 ⊂ SUSの関係になるらしいけど。。説明を読む感じだとどうなんでしょうね?