C の知識:stdlib.h
汎用のユーティリティ関数が集められています。
文字列の解釈
ato~関数は ASCII to ~ の意味で、文字列を実数や整数として解釈します。
double atof(const char *nptr); | |
int atoi(const char *nptr); | |
long int atol(const char *nptr); | |
long long int atoll(const char *nptr); |
乱数
擬似乱数を発生させます。
擬似乱数はsrandで設定される初期値によって、どの値が出るか完全に決定されます。srandが一度も呼ばれていない状態での初期値は 1 です7.22.2.2#2。
randの返す擬似乱数は 0 ~ RAND_MAX の範囲です。
void srand(unsigned int seed); | |
int rand(void); |
ただし C の擬似乱数は「質」が全く保障されていないので(「附録:乱数」を参照)、ちゃんとしたランダム性が欲しい場合は使用を避けるべきです。
動的メモリ確保
mallocやcallocはヒープから指定されたサイズの領域を確保し、freeはそれを開放します。
void *malloc(size_t size); | |
void *calloc(size_t nmemb, size_t size); | |
void free(void *ptr); |
callocはnmemb * sizeの領域を確保するだけでなく、その内容を 0 で初期化します。
mallocなどはメモリ確保が出来なかった場合ヌルポインタを返します。
システム
exit関数はプログラムを終了します。exit(status);はmain関数内でreturn status;を実行する事と同等です5.1.2.2.3#1。
_Noreturn void exit(int status); |
getenv関数は環境変数を取得します。名前の一致する環境変数が無い場合はヌルポインタが返ります。
char *getenv(const char *name); |
system関数は渡された文字列をコマンドとして実行環境で実行します。
int system(const char *string); |
ソート
qsort関数は配列の要素を並び替えます。順序関係は第四引数に比較関数を渡す事で指定します。
void qsort(void *base, size_t nmemb, size_t size, | |
int (*compar)(const void *, const void *)); |