標準 Cライブラリ
歴史
C
C
その
主 な機能
標準 ヘッダ
C11 (ISO/IEC 9899:2011) では、
ヘッダーファイル | ||
---|---|---|
assert.h |
||
complex.h |
C99 | |
ctype.h |
||
errno.h |
エラー | |
fenv.h |
C99 | |
float.h |
||
inttypes.h |
C99 | |
iso646.h |
AMD1[1] | |
limits.h |
||
locale.h |
||
math.h |
||
setjmp.h |
||
signal.h |
シグナル | |
stdalign.h |
C11 | アライメント |
stdarg.h |
||
stdatomic.h |
C11 | アトミック |
stdbool.h |
C99 | |
stddef.h |
||
stdint.h |
C99 | |
stdio.h |
||
stdlib.h |
||
stdnoreturn.h |
_Noreturn
| |
string.h |
||
tgmath.h |
C99 | |
threads.h |
マルチスレッド | |
time.h |
||
uchar.h |
C11 | Unicodeユーティリティ |
wchar.h |
AMD1[1] | |
wctype.h |
AMD1[1] | ワイド |
診断 機能 assert.h
ヘッダ assert.h
がインクルードされるNDEBUG
マクロの
assert
—NDEBUG
マクロが定義 されていない場合 に実行 時 診断 を行 う。
C11で、static_assert
が
複素数 complex.h
complex
—複素数 型 I
—虚数 単位 cabs
—絶対 値 carg
—偏 角 cacos
—逆 余弦 cacosh
—逆 双曲線 余弦 casin
—逆 正弦 casinh
—逆 双曲線 正弦 catan
—逆 正接 catanh
—逆 双曲線 正接 ccos
—余弦 ccosh
—双曲線 余弦 cexp
—指数 関数 cfabs
—浮動 小数点 数 の絶対 値 cimag
—複素数 の虚 部 clog
—自然 対数 clog10
—常用 対数 conj
—共役 複素数 cpow
—冪 乗 (べき乗 、累乗 )cproj
— リーマン球 への射影 creal
—複素数 の実 部 csin
—正弦 csinh
—双曲線 正弦 csqrt
—平方根 ctan
—正接 ctanh
—双曲線 正接
文字 操作 ctype.h
ctype.h
ヘッダが
isalnum
—英数字 かどうかの判別 isalpha
—英字 かどうかの判別 isblank
—単語 を区切 る文字 かどうかの判定 iscntrl
—制御 文字 かどうかの判別 isdigit
—数字 かどうかの判別 isgraph
—空白 (' ')を除 く表示 文字 かどうかの判別 islower
—小文字 かどうかの判別 isprint
—表示 文字 かどうかの判別 ispunct
—区切 り文字 かどうかの判別 isspace
—空白 類 文字 かどうかの判別 isupper
—大文字 かどうかの判別 isxdigit
— 16進 数字 かどうかの判別 tolower
—小文字 への変換 toupper
—大文字 への変換
エラー errno.h
ライブラリ
errno
— エラー番号 を格納 するint
型 の変数 を参照 するマクロ。マクロであるが、見 かけ上 はint
型 の変更 可能 な左辺 値 式 に展開 される[2](例 えば(*get_errno_address())
のような左辺 値 式 に展開 されるかもしれない)。C11以降 でスレッドが標準 化 されたことに伴 い、スレッドローカルな記憶 域 期間 (thread local storage duration) を持 つことが規定 された[3]。EDOM
—定義 域 エラーERANGE
—範囲 エラーEILSEQ
—多 バイト文字 の不正 な並 び
浮動 小数点 型 の特性 float.h
FLT_RADIX
—浮動 小数点 型 の内部 表現 に使用 される基数 FLT_ROUNDS
—浮動 小数点 型 の丸 め方向 FLT_MANT_DIG
—float
型 のFLT_RADIX
を基数 とした仮数 部 の桁数 FLT_MAX_EXP
—float
型 におけるFLT_RADIX
を基数 とした指数 部 の最大 値 FLT_MIN_EXP
—float
型 におけるFLT_RADIX
を基数 とした指数 部 の最小 値 FLT_MAX_10_EXP
—float
型 における10
を基数 とした指数 部 の最大 値 FLT_MIN_10_EXP
—float
型 における10
を基数 とした指数 部 の最小 値 FLT_MAX
—float
型 の最大 値 FLT_MIN
—float
型 の正 の値 の最小 値 (整数 型 とは違 いfloat
型 の実数 の最小 値 は-FLT_MAX
である)FLT_EPSILON
—float
型 で表現 可能 な1より大 きい最小 値 と1
との差 (計算 機 イプシロン)DBL_MANT_DIG
—double
型 のFLT_RADIX
を基数 とした仮数 部 の桁数 DBL_MAX_EXP
—double
型 におけるFLT_RADIX
を基数 とした指数 部 の最大 値 DBL_MIN_EXP
—double
型 におけるFLT_RADIX
を基数 とした指数 部 の最小 値 DBL_MAX_10_EXP
—double
型 における10
を基数 とした指数 部 の最大 値 DBL_MIN_10_EXP
—double
型 における10
を基数 とした指数 部 の最小 値 DBL_MAX
—double
型 の最大 値 DBL_MIN
—double
型 の正 の値 の最小 値 (整数 型 とは違 いdouble
型 の実数 の最小 値 は-DBL_MAX
である)DBL_EPSILON
—double
型 で表現 可能 な1より大 きい最小 値 と1
との差 LDBL_MANT_DIG
—long double
型 のFLT_RADIX
を基数 とした仮数 部 の桁数 LDBL_MAX_EXP
—long double
型 におけるFLT_RADIX
を基数 とした指数 部 の最大 値 LDBL_MIN_EXP
—long double
型 におけるFLT_RADIX
を基数 とした指数 部 の最小 値 LDBL_MAX_10_EXP
—long double
型 における10
を基数 とした指数 部 の最大 値 LDBL_MIN_10_EXP
—long double
型 における10
を基数 とした指数 部 の最小 値 LDBL_MAX
—long double
型 の最大 値 LDBL_MIN
—long double
型 の最小 値 LDBL_EPSILON
—long double
型 で表現 可能 な1より大 きい最小 値 と1
との差
整数 型 の大 きさ limits.h
CHAR_BIT
—1バイトの[4]ビットchar
型 を構成 する数 (>=8
)MB_LEN_MAX
—処理 系 がサポートするマルチバイト文字 の最大 バイト数 CHAR_MAX
—char
型 の最大 値 。SCHAR_MAX
またはUCHAR_MAX
と同 じCHAR_MIN
—char
型 の最小 値 。SCHAR_MIN
または0
と同 じSCHAR_MAX
—signed char
型 の最大 値 (>=127
)SCHAR_MIN
—signed char
型 の最小 値 (<=-127
)UCHAR_MAX
—unsigned char
型 の最大 値 (>=255
)SHRT_MAX
—short
型 の最大 値 (>=32767
)SHRT_MIN
—short
型 の最小 値 (<=-32767
)USHRT_MAX
—unsigned short
型 の最大 値 (>=65535
)INT_MAX
—int
型 の最大 値 (>=32767
)INT_MIN
—int
型 の最小 値 (<=-32767
)UINT_MAX
—unsigned int
型 の最大 値 (>=65535
)LONG_MAX
—long
型 の最大 値 (>=2147483647
)LONG_MIN
—long
型 の最小 値 (<=-2147483647
)ULONG_MAX
—unsigned long
型 の最大 値 (>=4294967295
)
文化 圏 固有 操作 locale.h
ロケールごとに
struct lconv
—数値 を記述 する場合 の書式 に関 する情報 を格納 する構造 体 localeconv
—設定 されているロケールに応 じた値 を格納 したstruct lconv
を参照 setlocale
—現在 のロケールを設定
数学 math.h
HUGE_VAL
—float
型 で表現 できるとは限 らない正 のdouble
型 の式 。無限 大 またはそれに類 する大 きな値 acos
—逆 余弦 asin
—逆 正弦 atan
—逆 正接 atan2
—底辺 と高 さを指定 した直角 三角形 の逆 正接 ceil
—天井 関数 cos
—余弦 cosh
—双曲線 余弦 exp
—指数 関数 fabs
—浮動 小数点 数 の絶対 値 floor
—床 関数 fmod
—浮動 小数点 どうしの商 と剰余 frexp
— 「正規 化 された仮数 部 」と「2
の累乗 」への分解 ldexp
—浮動 小数点 数 と2の累乗 との乗算 log
—自然 対数 log10
—常用 対数 modf
—整数 部 と小数 部 の分解 pow
—冪 乗 (べき乗 、累乗 )sin
—正弦 sinh
—双曲線 正弦 sqrt
—平方根 tan
—三 角 関数 |正接 tanh
—双曲線 関数 |双曲線 正接
非 局所 分岐 setjmp.h
jmp_buf
—setjmp
マクロが実行 環境 を保存 するための型 setjmp
—longjmp
関数 による復帰 を可能 にするために実行 環境 を保存 するためのマクロ(しばしば直接 、関数 で実装 されているが、標準 ではマクロとされている。POSIXではマクロか関数 かは指定 されない、としている)longjmp
—setjmp
マクロで保存 された環境 への復帰
シグナル操作 signal.h
シグナル
sig_atomic_t
—代入 および参照 が不 分割 に実行 される(アトミックオペレーションとなる)整数 型 raise
— シグナルの送信 signal
— シグナル処理 関数 の登録
可変 個数 の引数 stdarg.h
printf
va_list
—可変 個 の実 引数 にアクセスするための情報 を格納 する型 va_arg
—可変 個 の実 引数 の取 り出 しva_start
—可変 個 の実 引数 操作 の開始 va_end
—可変 個 の実 引数 操作 の終了
共通 の定義 stddef.h
ptrdiff_t
— ポインタ減算 の結果 の型 。符号 付 き整数 型 。size_t
— sizeof演算 子 の結果 の型 。符号 無 し整数 型 。Unix系 など、POSIX 1003.1-1996 API に準拠 している場合 、ssize_t
が符号 付 きのsize_t
。wchar_t
— ワイド文字 型 。8ビット以上 の整数 だが、コンパイラやプラットフォームにより大 きさは様々 。Microsoft Windowsでは16ビット、Unix系 では32ビットであることが多 い。NULL
—空 ポインタ定数 マクロoffsetof
—構造 体 メンバの先頭 からのオフセットを得 る
入出力 stdio.h
ストリームおよびファイルの
FILE
— ストリームを制御 するためのオブジェクト型 (構造 体 とは限 らない)fpos_t
— ファイルのシーク位置 を格納 するための型 clearerr
— ファイル終端 表示 子 およびエラー表示 子 のクリアfclose
— ファイルのクローズfeof
— ファイル終端 表示 子 の判定 ferror
— エラー表示 子 の判定 fgetc
— ストリームからの1文字 入力 fgetpos
— ストリームのファイル位置 表示 子 の参照 fgets
— ストリームからの1行 入力 fopen
— ファイルのオープンfprintf
— ストリームへの書式 付 き出力 fputc
— ストリームへの1文字 出力 fputs
— ストリームへの1行 出力 fread
— ストリームからの読 み込 みfscanf
— ストリームからの書式 付 き入力 fseek
— ストリームのファイル位置 表示 子 の変更 fsetpos
— ストリームのファイル位置 表示 子 の設定 ftell
— ストリームのファイル位置 表示 子 の参照 fwrite
— ストリームへの書 き込 みgetc
— ストリームからの1文字 入力 getchar
—標準 入力 からの1文字 入力 gets
—標準 入力 からの1行 入力 (ただし、C11で削除 された)perror
—標準 エラー出力 へのエラーメッセージの出力 printf
—標準 出力 への書式 付 き出力 putc
— ストリームへの1文字 出力 putchar
—標準 出力 への1文字 出力 puts
—標準 出力 への1行 出力 remove
— ファイルの削除 rename
— ファイル名 の変更 rewind
— ストリームの巻 き戻 しscanf
—標準 入力 からの書式 付 き入力 setbuf
— ストリームのバッファ設定 setvbuf
— ストリームの詳細 なバッファ設定 sprintf
—文字 配列 への書式 付 き出力 sscanf
—文字 列 からの書式 付 き入力 tmpfile
— テンポラリファイルをバイナリモードでオープンtmpnam
— テンポラリファイル名 の生成 vprintf
—標準 出力 への書式 付 き出力 (va_list
版 )vscanf
—標準 入力 からの書式 付 き入力 (va_list
版 )
一般 ユーティリティ stdlib.h
div_t
—int
型 の商 と剰余 を格納 する構造 体 ldiv_t
—long
型 の商 と剰余 を格納 する構造 体 MB_CUR_MAX
—設定 されているロケールにおけるマルチバイト文字 の最大 バイト数 を表 すマクロRAND_MAX
—rand
関数 が返 す擬似 乱数 の最大 値 abort
— プログラムの異常 終了 abs
—int
型 の絶対 値 aligned_alloc
— アライメントされたメモリブロックの割 り付 け(C11で追加 )atexit
—終了 時 関数 の登録 at_quick_exit
—通常 の終了 時 関数 の登録 (C11で追加 )atof
—文字 列 からdouble
型 への変換 atoi
—文字 列 からint
型 への変換 atol
—文字 列 からlong
型 への変換 bsearch
— バイナリサーチcalloc
— メモリブロックの割 り付 けとクリアdiv
—int
型 どうしの商 と剰余 exit
[要 曖昧 さ回避 ] — プログラムの終了 free
— メモリブロックの解放 getenv
—環境 変数 の参照 labs
—long
型 の絶対 値 ldiv
—long
型 どうしの商 と剰余 malloc
— メモリブロックの割 り付 けmblen
— マルチバイト文字 の構成 バイト数 mbstowcs
— マルチバイト文字 列 からワイド文字 列 への変換 mbtowc
— マルチバイト文字 からワイド文字 への変換 qsort
— クイックソート (ただし、仕様 上 はソートを行 うとあるだけで「クイックソートによる」とは書 かれていない)quick_exit
—通常 のプログラムの終了 (C11で追加 )rand
—擬似 乱数 realloc
— メモリブロックの再 割 り付 けsrand
—乱数 種 の設定 strtod
—文字 列 からdouble
型 への変換 strtol
—文字 列 からlong
型 への変換 (基数 指定 可 )strtoul
—文字 列 からunsigned long
型 への変換 (基数 指定 可 )system
— コマンドプロセッサの呼 び出 しwcstombs
— ワイド文字 列 からマルチバイト文字 列 への変換 wctomb
— ワイド文字 列 からマルチバイト文字 列 への変換
文字 列 操作 string.h
memchr
— メモリブロック中 の文字 検索 memcmp
— メモリブロックの比較 memcpy
— メモリブロックのコピーmemmove
— メモリブロックの転送 memset
— メモリブロックを指定 文字 で埋 めるstrchr
—文字 列 内 の文字 探索 strcat
—文字 列 の連結 strcmp
—文字 列 の比較 strcpy
—文字 列 のコピーstrcspn
—文字 列 中 の指定 文字 群 を含 まない先頭 部分 の長 さstrerror
— エラー番号 に対応 したエラーメッセージ文字 列 の取得 strcoll
— ロケールに応 じた順序 付 けによる文字 列 の比較 strlen
—文字 列 の長 さstrncat
—字数 制限 付 きで文字 列 の連結 strncmp
—字数 制限 付 きで文字 列 の比較 strncpy
—字数 制限 付 きで文字 列 のコピーstrpbrk
—文字 列 中 の文字 群 探索 strrchr
—文字 列 内 の逆 方向 文字 探索 strspn
—文字 列 中 の指定 文字 群 を含 む先頭 部分 の長 さstrstr
—文字 列 中 の文字 列 探索 strtok
—文字 列 からの字句 切 り出 しstrxfrm
— ロケールに応 じた順序 付 けになるように文字 列 を変換
型 総称 数学 関数 <tgmath.h>
スレッド<threads.h>
C11で
日付 及 び時間 time.h
グレゴリオ
clock_t
— clock関数 が返 す値 の型 time_t
—時刻 を表 す型 struct tm
—暦 時刻 の各 要素 (年月 日時 分秒 等 )を格納 する構造 体 CLOCKS_PER_SEC
—clock
関数 が返 す値 を秒 単位 に変換 するための除数 を表 すマクロ定数 asctime
—tm
構造 体 から文字 列 への変換 clock
—処理 系 定義 の開始 点 (通例 プログラム実行 開始 )からの経過 時間 (プロセッサ時間 、CPU使用 時間 )の取得 ctime
—time_t
型 から文字 列 への変換 difftime
—time_t
型 どうしの秒 単位 での差 gmtime
—協定 世界 時 (UTC) の取得 localtime
—地方 時刻 の取得 mktime
—tm
構造 体 からtime_t
型 への変換 strftime
—tm
構造 体 から文字 列 への書式 付 き変換 time
—現在 の暦 時刻 (calendar time) の取得
time_tは、
Unicodeユーティリティ<uchar.h>
C11で
多 バイト文字 及 びワイド文字 拡張 ユーティリティ<wchar.h>
ワイド文字種 分類 及 びワイド文字 大文字 小文字 ユーティリティ<wctype.h>
フリースタンディング環境
フリースタンディングfloat.h
、limits.h
、stdarg.h
、stddef.h
にiso646.h
が、C99 ではstdbool.h
および stdint.h
に
Unix系 の標準 Cライブラリ
Unix
GNU/Linux(
C++における標準 Cライブラリ
C++03のfloat
double
uchar.h
を
xxx.h
は、C++では cxxx
というヘッダにマッピングされる。std
xxx.h
std
using
C++memchr
strstr
const
Cの
char *strchr(const char*, int);
C++の
const char *strchr(const char*, int);
char *strchr(char*, int);
脚註
- ^ a b c ISO/IEC 9899/AMD1:1995
- ^ ISO/IEC 9899:1999 TC3 | WG14/N1256, Committee Draft | Septermber 7, 2007 | 7.5 Errors <errno.h>
- ^ ISO/IEC 9899:201x | WG14/N1548, Committee Draft | December 2, 2010 | 7.5 Errors <errno.h>
- ^ N2596 working draft — December 11, 2020 ISO/IEC 9899:202x (E). ISO/IEC JTC1/SC22/WG14. p. 20, §5.2.4.2.1 Characteristics of integer types <limits.h>