ITメモ
C言語 / Programming Language C
開発環境 / Development Environment
【Mac】Xcode【Win】Visual Stadio
基礎 / Basic
About C言語書式コンパイルとリンクメイクファイル / Makefileヘッダファイル変数定数型 / Type配列 / Arrayポインタ / Pointer演算子 / Operator制御文 / Control Statement関数構造体と共用体 / Structure & Unionプリプロセッサ / PreprocessorthisキーワードTypedef
文字列 / String
文字列 / Stringsnprintf - 文字列書式に従って指定文字数分だけ文字配列に書き込む
ネットワーク / Network
memset - メモリブロックのセット
メモリー管理
メモリー
入出力 / Input & Output
入出力入力フォーマット指定子出力フォーマット指定子
オペレーション / Operation
ファイル操作 / File Operationコマンドラインプログラム / Command-Line Programプロセス / Processソケット通信 / Socket Communication
用語集 / Glossary
サブルーチン / Subroutineスタックとキュー / Stack & Cueスレッド / Thread
C言語標準ライブラリ(ヘッダファイル)
C言語標準ライブラリC言語標準ライブラリ【assert.h】 - 診断機能C言語標準ライブラリ【complex.h】 - 複素数計算C言語標準ライブラリ【ctype.h】 - 文字操作C言語標準ライブラリ【errno.h】 - エラーC言語標準ライブラリ【fenv.h】 - 浮動小数点環境C言語標準ライブラリ【float.h】 - 浮動小数点型の特性C言語標準ライブラリ【inttypes.h】 - 整数型の書式の変換C言語標準ライブラリ【iso646.h】 - 代替つづり(Alternate spellings)C言語標準ライブラリ【limits.h】 - 整数型の大きさC言語標準ライブラリ【locale.h】 - 文化圏固有操作C言語標準ライブラリ【math.h】 - 数学C言語標準ライブラリ【setjmp.h】 - 非局所分岐C言語標準ライブラリ【signal.h】 - シグナル操作C言語標準ライブラリ【stdalign.h】 - アライメントC言語標準ライブラリ【stdarg.h】 - 可変個数の実引数C言語標準ライブラリ【stdatomic.h】 - アトミック操作C言語標準ライブラリ【stdbool.h】 - 論理型および論理値C言語標準ライブラリ【stddef.h】 - 共通の定義C言語標準ライブラリ【stdint.h】 - 整数型C言語標準ライブラリ【stdio.h】 - 入出力C言語標準ライブラリ【stdlib.h】 - 一般ユーティリティC言語標準ライブラリ【stdnoreturn.h】 - _NoreturnC言語標準ライブラリ【string.h】 - 文字列操作C言語標準ライブラリ【tgmath.h】 - 型総称数学関数(Type-generic math)C言語標準ライブラリ【threads.h】 - マルチスレッドC言語標準ライブラリ【time.h】 - 日付及び時間C言語標準ライブラリ【uchar.h】 - UnicodeユーティリティC言語標準ライブラリ【wchar.h】 - 多バイトおよびワイド文字拡張ユーティリティC言語標準ライブラリ【wctype.h】 - ワイド文字種分類およびワイド文字大文字小文字変換ユーティリティ
C言語ライブラリ(ヘッダファイル)
C言語ヘッダファイル【winsock.h】





C言語標準ライブラリ【stdlib.h】 - 一般ユーティリティ






一般ユーティリティ <stdlib.h>

一般ユーティリティに関する型・マクロ・関数の宣言定義。

・div_t - int 型の商と剰余を格納する構造体
・ldiv_t - long 型の商と剰余を格納する構造体
・MB_CUR_MAX - 設定されているロケールにおけるマルチバイト文字の最大バイト数を表すマクロ
・RAND_MAX - rand 関数が返す擬似乱数の最大値
・abort - プログラムの異常終了
・abs - int 型の絶対値
・atexit - 終了時関数の登録
・atof - 文字列から double 型への変換
・atoi - 文字列から int 型への変換
・atol - 文字列から long 型への変換
・bsearch - バイナリサーチ
・calloc - メモリブロックの割り付けとクリア
・div - int 型どうしの商と剰余
・exit - プログラムの終了
・free - メモリブロックの解放
・getenv - 環境変数の参照
・labs - long 型の絶対値
・ldiv - long 型どうしの商と剰余
・malloc - メモリブロックの割り付け
・mblen - マルチバイト文字の構成バイト数
・mbstowcs - マルチバイト文字列からワイド文字列への変換
・mbtowc - マルチバイト文字からワイド文字への変換
・qsort - クイックソート(ただし、仕様上はソートを行うとあるだけで「クイックソートによる」とは書かれていない)
・rand - 擬似乱数
・realloc - メモリブロックの再割り付け
・srand - 乱数種の設定
・strtod - 文字列から double 型への変換
・strtol - 文字列から long 型への変換(基数指定可)
・strtoul - 文字列から unsigned long 型への変換(基数指定可)
・system - コマンドプロセッサの呼び出し
・wcstombs - ワイド文字列からマルチバイト文字列への変換
・wctomb - ワイド文字列からマルチバイト文字列への変換



汎用 <stdlib.h>


特に分類されない汎用的な関数の集まり。
メモリ関連、プロセス関連、変換など。




[ malloc ]  : メモリを動的に確保する。
関数型 : void *malloc(size_t n);
引数  : 確保するメモリサイズ
戻り値 : 確保したメモリのアドレス。確保できなかった場合はNULL。
機能  : メモリを動的に確保する。
[ calloc ]  : メモリを動的に確保する。確保したメモリはゼロクリアされる。
関数型 : void *calloc(size_t int nelem, size_t elsize);
引数  : 要素数、1要素のサイズ
戻り値 : 確保したメモリのアドレス。確保できなかった場合はNULL。
機能  : メモリを動的に確保する。確保したメモリはゼロクリアされる。
注意  : ゼロクリアされるからバグが減ると勘違いしないように。

[ realloc ]  : 確保したメモリサイズを変更する。中身は維持される。
関数型 : void *realloc(void *ptr, size_t size);
引数  : 確保したメモリのアドレス、新しいメモリサイズ。
戻り値 : 確保したメモリのアドレス。確保できなかった場合はNULL。
機能  : 確保したメモリサイズを変更する。中身は維持される。
補足  : メモリアドレスが変更される可能性があることに注意。

[ free ]  : 動的に確保したメモリを解放。
関数型 : void free(void *p);
引数  : 確保したメモリのアドレス
機能  : 動的に確保したメモリを解放。

[ abs ]  : 絶対値を求める。
関数型 : int abs(int n);
引数  : 数値
戻り値 : 数値の絶対値
機能  : 絶対値を求める。

[ labs ]  : 絶対値を求める。
関数型 : long labs(long n);
引数  : 数値
戻り値 : 数値の絶対値
機能  : 絶対値を求める。

[ atof ]  : 数字を含む文字列を実数値に変換。
関数型 : double atof(const char *s);
引数  : 数字を含む文字列
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を実数値に変換。

[ atoi ]  : 数字を含む文字列を整数値に変換。
関数型 : int atoi(const char *s);
引数  : 数字を含む文字列
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を整数値に変換。

[ atol ]  : 数字を含む文字列を整数値に変換。
関数型 : long atol(const char *s);
引数  : 数字を含む文字列
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を整数値に変換。

[ strtod ]  : 数字を含む文字列を実数値に変換。
関数型 : double strtod(const char *s, char **endptr);
引数  : 数字を含む文字列、終了位置のアドレス
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を実数値に変換。

[ strtol ]  : 数字を含む文字列を整数値に変換。
関数型 : long strtol(const char *s, char **endptr, int base);
引数  : 数字を含む文字列、終了位置のアドレス、数値の基数(2進数や16進数)
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を整数値に変換。

[ strtoul ]  : 数字を含む文字列を符号無し整数値に変換。
関数型 : unsigned long strtoul(const char *s, char **endptr, int base);
引数  : 数字を含む文字列、終了位置のアドレス、数値の基数(2進数や16進数)
戻り値 : 変換後の値。変換できない場合は0。
機能  : 数字を含む文字列を符号無し整数値に変換。

[ div ]  : 商と余りを同時に計算。
関数型 : div_t div(int num, int denom);
引数  : 割られる数、割る数。
戻り値 : 割り算の結果。
機能  : 商と余りを同時に計算。
構造体 : div_t構造体 int quot 商、 int rem 余り。
補足  : この関数より、演算子 / や % を使うことをお勧めする。

[ ldiv ]  : 商と余りを同時に計算。
関数型 : ldiv_t ldiv(long num, long denom);
引数  : 割られる数、割る数。
戻り値 : 割り算の結果。
機能  : 商と余りを同時に計算。
構造体 : ldiv_t構造体 long quot 商、 long rem 余り。
補足  : この関数より、演算子 / や % を使うことをお勧めする。

[ rand ]  : 乱数を得る。
関数型 : int rand(void);
戻り値 : ランダムな値。範囲は処理系による。
機能  : 乱数を得る。
使用法 : #define RANDOM(MIN,MAX) ((MIN)+(int)(rand()/(float)RAND_MAX*((MAX)-(MIN)+1)))
     とすれば、min ~ max 間の乱数を得ることが出来る。

[ srand ]  : 乱数系列の初期値を与える。
関数型 : void srand(unsigned int seed);
引数  : 乱数系列の初期値。
機能  : 乱数系列の初期値を与える。
使用法 : srand((unsigned int)time(0)); が定番である。

[ exit ]  : プログラムを終了させる。
関数型 : void exit(int n);
引数  : 終了コード。一般に EXIT_SUCCESS は正常終了、EXIT_FAILURE は異常終了。
機能  : プログラムを終了させる。

[ abort ]  : プログラムを異常終了させる。
関数型 : void abort(void);
機能  : プログラムを異常終了させる。
補足  : エラーが発生したときの終了に使用する。

[ atexit ]  : プログラム終了時に実行する関数を登録する。
関数型 : int atexit(void (*func)(void));
引数  : 関数のアドレス
戻り値 : 成功した場合は0、失敗した場合は0以外。
機能  : プログラム終了時に実行する関数を登録する。

[ getenv ]  : 環境変数を取得する。
関数型 : char *getenv(const char *name);
引数  : 名前
戻り値 : 値を格納した文字列の先頭アドレス。見つからない場合はNULL。
機能  : 環境変数を取得する。

[ bsearch ]  : 2分探索を行う。データは昇順に整列されていなくてはならない。
関数型 : void *bsearch(const void *key, const void *base,
    size_t nmemb,size_t size, int (*compar)(const void *x, const void *y));
引数  : 探す値、配列の先頭、探索数、1要素のサイズ、比較関数のアドレス
戻り値 : 見つかった要素のアドレス。見つからない場合はNULL。
機能  : 2分探索を行う。データは昇順に整列されていなくてはならない。
比較  : 比較関数は、x > yの場合は正、x = yの場合は0、x < yの場合は負を返すこと。

[ qsort ]  : 配列を昇順に整列する。クイックソートを使っていることが多い。
関数型 : void qsort(void *base, size_t nel, size_t width,
    int(*compar)(const void *x, const void *y));
引数  : 配列の先頭、整列個数、1要素のサイズ、比較関数のアドレス
機能  : 配列を昇順に整列する。クイックソートを使っていることが多い。
比較  : 比較関数は、x > yの場合は正、x = yの場合は0、x < yの場合は負を返すこと。

[ system ]  : 処理系が用意しているコマンドを実行する。
関数型 : int system(const char *string);
引数  : コマンド文字列。
戻り値 : 処理系のコマンド依存。コマンドを実行できなかった場合は-1。
機能  : 処理系が用意しているコマンドを実行する。
補足  : 当然だが、コマンドは処理系が異なると互換性がない。
    : NULLを指定すると、コマンドが利用できない環境では0を返します。




; ;