MMGamesロゴ  MMGames
Twitterシェアボタン  Facebookシェアボタン   
しんで覚えるC言語
しんで覚えるC言語

標準ライブラリ関数一覧

入出力
主にファイルを取り扱う関数です。
C言語では、ディスク以外の周辺機器もファイル扱いできます。
また、規定のファイルポインタとしてこれらを扱うことができます。

規定のファイルポインタ
stdin 標準入力(普通はキーボード)
stdout 標準出力(普通はディスプレイ)
stderr 標準エラー出力(普通はディスプレイ)

これらは、リダイレクト等の方法でユーザーが変更することもできますし、
環境によっては、別の機器に関連づけられたり、無効になっていることもあります。

fopen
関数型 : FILE *fopen(const char *filename, const char *mode);
引数  : ファイル名、モード文字列
戻り値 : 開いたファイルポインタ。失敗した場合はNULL。
機能  : ファイルを開く。
モード : r 読み込み、w 新規、a 追加。b付加でバイナリ、+付加で入出力両用。


fclose
関数型 : int fclose(FILE *fp);
引数  : ファイルポインタ
戻り値 : 成功した場合は0、失敗したときはEOF
機能  : ファイルを閉じる。


fgetc
関数型 : int fgetc(FILE *fp);
引数  : ファイルポインタ
戻り値 : 読み出した文字。失敗したか終わりに到達した場合はEOF。
機能  : ファイルから1文字読み出す。


getc
機能  : fgetcとまったく同じ。
注意  : マクロになっていることがあるので副作用に注意。


fgets
関数型 : char *fgets(char *s, int n, FILE *fp);
引数  : 文字列を格納するバッファ、バッファサイズ、ファイルポインタ
戻り値 : 引数で指定したバッファ。失敗したか終わりに到達した場合はNULL。
機能  : ファイルから1行読み出す。結果に改行を含む。


fputc
関数型 : int fputc(int c, FILE *fp);
引数  : 文字、ファイルポインタ
戻り値 : 出力文字。失敗したときはEOF。
機能  : ファイルに1文字書き込む。


putc
機能  : fputcとまったく同じ。
注意  : マクロになっていることがあるので副作用に注意。


fputs
関数型 : int fputs(const char *s, FILE *fp);
引数  : 文字列、ファイルポインタ
戻り値 : 成功した場合は真、失敗したときはEOF。
機能  : ファイルに文字列を書き込む。


fread
関数型 : size_t fread(void *ptr, size_t size, size_t nelem, FILE *fp);
引数  : 読み込み結果を格納するバッファ、1項目のサイズ、項目数、ファイルポインタ
戻り値 : 読み込んだ項目数。失敗した場合は0。
機能  : ファイルから固定サイズの項目を読み込む。


fwrite
関数型 : size_t fwrite(const void *ptr, size_t size, size_t nelem, FILE *fp);
引数  : 書き込むバッファ、1項目のサイズ、項目数、ファイルポインタ
戻り値 : 書き込んだ項目数。失敗した場合は0。
機能  : ファイルに固定サイズの項目を書き込む。


fprintf
関数型 : int fprintf(FILE *fp, const char *format, ...);
引数  : ファイルポインタ、書式付き文字列、可変個の変数
戻り値 : 出力文字数。失敗したときは負の値。
機能  : ファイルに書式付き文字列を書き込む。


fscanf
関数型 : int fscanf(FILE *fp, const char *format, ...);
引数  : ファイルポインタ、変換指定文字列、可変個のバッファ
戻り値 : 変換に成功した数。失敗した場合は-1。
機能  : ファイルから文字列を読み込み指定された形式に変換する。


ftell
関数型 : long ftell(FILE *fp);
引数  : ファイルポインタ
戻り値 : 現在のファイル位置。
機能  : ファイル位置を取得する。


fseek
関数型 : int fseek(FILE *fp, long offset, int ptrname);
引数  : ファイルポインタ、ファイル位置の移動数、ファイル位置の基準
戻り値 : 成功した場合は0、失敗したときは0以外。
機能  : ファイル位置を変更する。
位置  : SEEK_SET 先頭、SEEK_CUR 現在の位置、SEEK_END 終わり。


fgetpos
関数型 : int fgetpos(FILE *fp, fpos_t *ptr);
引数  : ファイルポインタ、ファイル位置を格納する変数のポインタ
戻り値 : 成功した場合は0、失敗したときは0以外。機能  : 現在のファイル位置を格納する。


fsetpos
関数型 : int fsetpos(FILE *fp, const fpos_t *ptr);引数  : ファイルポインタ、ファイル位置を格納する変数のポインタ
戻り値 : 成功した場合は0、失敗したときは0以外。
機能  : ファイル位置を変更する。


feof
関数型 : int feof(FILE *fp);
引数  : ファイルポインタ
戻り値 : 終わりに到達した場合は真、到達していない場合は偽。
機能  : ファイルが終わりに到達したか調べる。


ferror
関数型 : int ferror(FILE *fp);
引数  : ファイルポインタ
戻り値 : エラー発生した場合は真、発生していない時は偽。
機能  : ファイルにエラーが発生したか調べる。


clearerr
関数型 : void clearerr(FILE *fp);
引数  : ファイルポインタ
機能  : ファイルのエラーの時に回復する。


fflush
関数型 : int fflush(FILE *fp);
引数  : ファイルポインタ
戻り値 : 成功した場合は0、失敗したときは偽。
機能  : 出力バッファを強制出力する。
注意  : コンパイラによっては入力バッファをクリアできる。ただし邪道である。


freopen
関数型 : FILE *freopen(const char *filename, const char *mode, FILE *fp);
引数  : ファイル名、モード文字列、ファイルポインタ
戻り値 : 引数で指定されたファイルポインタ。失敗した場合はNULL。
機能  : ファイルポインタの再割り当て。


rename
関数型 : int rename(const char *oldname, const char *newname);
引数  : 現在のファイル名、新しいファイル名
戻り値 : 成功した場合は0、失敗したときは0以外。
機能  : ファイルの名前を変更する。


remove
関数型 : int remove(const char *filename);
引数  : ファイル名
戻り値 : 成功した場合は0、失敗したときは0以外。
機能  : ファイルを削除する。


getchar
関数型 : int getchar(void);
戻り値 : 読み出した文字。失敗した場合はEOF。
機能  : 標準入力(キーボード)から1文字読み込む。


putchar
関数型 : int putchar(char c);
引数  : 文字
戻り値 : 出力文字。失敗したときはEOF。
機能  : 標準出力(ディスプレイ)に1文字書き込む。


gets
関数型 : char *gets(char *s);
引数  : 読み込んだ文字列を格納するバッファ
戻り値 : 引数で指定したバッファ。失敗したか終わりに到達した場合はNULL。
機能  : 標準入力(キーボード)から1行読み出す。結果に改行は含まれない。
注意  : バッファオーバーラン(ウイルス侵入)の原因になるので使ってはいけない。


puts
関数型 : int puts(const char *s);
引数  : 文字列
戻り値 : 成功した場合は0、失敗したときは0以外。
機能  : 標準出力(ディスプレイ)に1行書き込む。改行されます。


perror
関数型 : void perror(const char *s);
引数  : 表示する文字列
機能  : 指定した文字列と一緒に直前に発生したエラーを表示する。


printf
関数型 : int printf(const char *format, ...);
引数  : 書式付き文字列、可変個の変数
戻り値 : 出力文字数。失敗したときは-1。
機能  : 標準出力(ディスプレイ)に書式付き文字列を書き込む。


scanf
関数型 : int scanf(const char *format, ...);
引数  : 変換指定文字列、可変個のバッファ
戻り値 : 変換に成功した数。失敗した場合は-1。
機能  : 標準入力(キーボード)から文字列を読み込み指定された形式に変換する。
注意  : 他の入力関数と一緒に使うと思わぬ動作をすることがある。


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


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
関数型 : 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を返します。


文字処理
半角文字1文字を取り扱う関数群。
マクロとして実現されていることがほとんどである。


isalpha
関数型 : int isalpha(int c);
引数  : 文字
戻り値 : 文字がアルファベットなら0以外、異なる場合は0。
機能  : 文字がアルファベットか判定する。


isupper
関数型 : int isupper(int c);
引数  : 文字
戻り値 : 文字が英大文字なら0以外、異なる場合は0。
機能  : 文字が英大文字か判定する。


islower
関数型 : int islower(int c);
引数  : 文字
戻り値 : 文字が英小文字なら0以外、異なる場合は0。
機能  : 文字が英小文字か判定する。


isdigit
関数型 : int isdigit(int c);
引数  : 文字
戻り値 : 文字が数字なら0以外、異なる場合は0。
機能  : 文字が数字か判定する。


isspace
関数型 : int isspace(int c);
引数  : 文字
戻り値 : 文字が空白文字なら0以外、異なる場合は0。
機能  : 文字が空白文字か判定する。


isalnum
関数型 : int isalnum(int c);
引数  : 文字
戻り値 : 文字がアルファベットまたは数字なら0以外、異なる場合は0。
機能  : 文字がアルファベットまたは数字か判定する。


iscntrl
関数型 : int iscntrl(int c);
引数  : 文字
戻り値 : 文字がコントロール文字なら0以外、異なる場合は0。
機能  : 文字がコントロール文字か判定する。


isgraph
関数型 : int isgraph(int c);
引数  : 文字
戻り値 : 文字がスペース以外の印刷できる文字なら0以外、異なる場合は0。
機能  : 文字がスペース以外の印刷できる文字か判定する。


isprint
関数型 : int isprint(int c);
引数  : 文字
戻り値 : 文字が印刷できる文字なら0以外、異なる場合は0。
機能  : 文字が印刷できる文字か判定する。


ispunct
関数型 : int ispunct(int c);
引数  : 文字
戻り値 : 文字が区切り文字なら0以外、異なる場合は0。
機能  : 文字が区切り文字か判定する。


isxdigit
関数型 : int isxdigit(int c);
引数  : 文字
戻り値 : 文字が16進数用の文字なら0以外、異なる場合は0。
機能  : 文字が16進数用の文字か判定する。

文字列処理
主に文字列処理を行う関数群。
汎用のメモリ処理と共用できる関数も多い。
なお、半角文字を基準とするので、全角文字の処理には注意すること。


strcpy
関数型 : char *strcpy(char *s, const char *t);
引数  : 文字配列、文字列
戻り値 : 引数の文字配列をそのまま返す
機能  : 文字配列に文字列をコピーする。文字列の代入に使用する。


strncpy
関数型 : char *strncpy(char *s, const char *t, size_t n);
引数  : 文字配列、文字列、最大コピー文字数
戻り値 : 引数の文字配列をそのまま返す。
機能  : 文字配列に指定文字数だけ文字列をコピーする。
注意  : 文字数が多い場合にはナル文字を付加しないので、
必ず、s = '\0'; としてナル文字を付加してください。


strcat
関数型 : char *strcat(char *s, const char *t);
引数  : 文字配列、文字列
戻り値 : 引数の文字配列をそのまま返す
機能  : 文字配列の後ろに文字列をつなげる。


strncat
関数型 : char *strncat(char *s, const char *t, size_t n);
引数  : 文字配列、文字列、最大連結文字数
戻り値 : 引数の文字配列をそのまま返す。
機能  : 文字配列の後ろに指定文字数だけ文字列をつなげる。


strlen
関数型 : size_t strlen(const char *s);
引数  : 文字列
戻り値 : 文字列の長さ。ナル文字は含めない。
機能  : 文字列の長さを返す。


strcmp
関数型 : int strcmp(const char *s, const char *t);
引数  : 文字列1、文字列2
戻り値 : 文字列1が大きいときは正、同じ時は0、文字列2が大きいときは負。
機能  : 文字列1と文字列2を比較する。


strncmp
関数型 : int strncmp(const char *s, const char *t, size_t n);
引数  : 文字列1、文字列2、比較文字数
戻り値 : 文字列1が大きいときは正、同じ時は0、文字列2が大きいときは負。
機能  : 文字列を指定文字数だけ比較する。


strchr
関数型 : char *strchr(const char *s, int c);
引数  : 文字列、文字
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能  : 文字列の先頭から文字を検索する。


strrchr
関数型 : char *strrchr(const char *s, int c);
引数  : 文字列、文字
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能  : 文字列の後ろから文字を検索する。


strcspn
関数型 : size_t strcspn(const char *s, const char *t);
引数  : 対象文字列、検索文字列
戻り値 : 見つかった位置までの文字数。
機能  : 対象文字列の中から検索文字列に含まれる文字を検索する。


strspn
関数型 : size_t strspn(const char *s, const char *t);
引数  : 対象文字列、検索文字列
戻り値 : 見つからない位置までの文字数。
機能  : 対象文字列の中から検索文字列に含まれない文字を検索する。


strpbrk
関数型 : char *strpbrk(const char *s, const char *t);
引数  : 対象文字列、検索文字列
戻り値 : 見つかった最初の文字へのポインタ、見つからない場合はNULL。
機能  : 対象文字列の先頭から検索文字列に含まれる文字を検索する。


strstr
関数型 : char *strstr(const char *s, const char *t);
引数  : 対象文字列、検索文字列
戻り値 : 見つかった位置へのポインタ、見つからない場合はNULL。
機能  : 対象文字列から検索文字列を検索する。


strtok
関数型 : char *strtok(char *s, const char *t);
引数  : 文字配列、区切り文字列
戻り値 : 区切られた単語へのポインタ。見つからない場合はNULL。
機能  : 文字配列を、区切り文字列に含まれる文字がある位置で区切る。
文字配列をNULLにして呼び出すと次の単語を取得できる。


strerror
関数型 : char *strerror(int n);
引数  : エラー番号
戻り値 : エラーメッセージが格納された配列。対応するエラーがないときは空文字列。
機能  : エラーメッセージを取得する。
注意  : 取得した配列の中身は書き換えないようにする。


memcpy
関数型 : void *memcpy(void *dest, const void *source, size_t count);
引数  : コピー先、コピー元、コピーサイズ
戻り値 : 引数のコピー先を返す
機能  : メモリ内容をコピーする。コピー領域が重なっているとうまくいかない。


memmove
関数型 : void *memmove(void *dest, const void *source, size_t count);
引数  : コピー先、コピー元、コピーサイズ
戻り値 : 引数のコピー先を返す
機能  : メモリ内容をコピーする。コピー領域が重なっていても問題ない。
補足  : move という名前だが、移動ではないので注意。


memset
関数型 : void *memset(void *addr, int byte, size_t count);
引数  : 配列、数値、代入サイズ
戻り値 : 引数の配列をそのまま返す
機能  : メモリ内容の指定サイズ分の要素すべてに数値を代入。文字にも使用できる。


memcmp
関数型 : int memcmp(const void *addr1, const void *addr2, size_t n);
引数  : 配列1、配列2、比較サイズ
戻り値 : 配列1が大きいときは正、同じ時は0、配列2が大きいときは負。
機能  : メモリ同士を比較する。文字列の比較もできる。


memchr
関数型 : void *memchr(const void *addr, int byte, size_t count);
引数  : 配列、1バイトの数値、検索するサイズ
戻り値 : 見つかった位置のアドレス、見つからない場合はNULL。
機能  : メモリ内から数値を検索する。1文字検索にも使える。


数学関数
基本的な数学関数群。
角度はラジアンで表されるので注意すること。
度からラジアンへの変換は次の通り。
ラジアン = (度 * 3.14159 / 180)


fabs
関数型 : double fabs(double x);
引数  : 実数値
戻り値 : 絶対値
機能  : 絶対値を計算する。


sqrt
関数型 : double sqrt(double x);
引数  : 任意の実数値
戻り値 : 平方根
機能  : 平方根を計算する


pow
関数型 : double pow(double x, double y);
引数  : 累乗される値、指数
戻り値 : x を y 乗した値
機能  : 累乗を求める。


fmod
関数型 : double fmod(double x, double y);
引数  : 割られる数、割る数
戻り値 : 余り
機能  : 実数値の余りを求める。


sin
関数型 : double sin(double x);
引数  : ラジアン単位の角度
戻り値 : サイン値
機能  : サインを計算する


cos
関数型 : double cos(double x);
引数  : ラジアン単位の角度
戻り値 : コサイン値
機能  : コサインを計算する


tan
関数型 : double tan(double x);
引数  : ラジアン単位の角度
戻り値 : タンジェント値
機能  : タンジェントを計算する


acos
関数型 : double acos(double x);
引数  : コサインの値
戻り値 : アークコサイン(ラジアン)値
機能  : アークコサインを計算する


asin
関数型 : double asin(double x);
引数  : サインの値
戻り値 : アークサイン(ラジアン)値
機能  : アークサインを計算する


atan
関数型 : double atan(double x);
引数  : タンジェントの値
戻り値 : アークタンジェント(ラジアン)値
機能  : アークタンジェントを計算する。
値は π÷2 の範囲となる。


atan2
関数型 : double atan2(double y, double x);
引数  : 縦の値、横の値
戻り値 : アークタンジェント(ラジアン)値
機能  : アークタンジェントを計算する。
値は π の範囲となり、引数xが0でも計算できる。


sinh
関数型 : double sinh(double x);
引数  : ラジアン単位の角度
戻り値 : ハイパボリックサイン値
機能  : ハイパボリックサイン値を計算する
(exp(x) - exp(-x)) / 2 と同じ。


cosh
関数型 : double cosh(double x);
引数  : ラジアン単位の角度
戻り値 : ハイパボリックコサイン値
機能  : ハイパボリックコサイン値を計算する
(exp(x) + exp(-x)) / 2 と同じ。


tanh
関数型 : double tanh(double x);
引数  : ラジアン単位の角度
戻り値 : ハイパボリックタンジェント値
機能  : ハイパボリックタンジェント値を計算する
sinh(x) / cosh(x) と同じ。


ceil
関数型 : double ceil(double x);
引数  : 任意の実数値
戻り値 : 入力値以上の整数値
機能  : 実数値を整数値に丸める。


floor
関数型 : double floor(double x);
引数  : 任意の実数値
戻り値 : 入力値以下の整数値
機能  : 実数値を整数値に丸める。


exp
関数型 : double exp(double x);
引数  : 実数値
戻り値 : 自然対数の底のx乗
機能  : 指数を計算する。


log
関数型 : double log(double x);
引数  : 任意の実数値
戻り値 : 自然対数値
機能  : 自然対数を求める。


log10
関数型 : double log10(double x);
引数  : 任意の実数値
戻り値 : 常用対数値
機能  : 常用対数を求める。


modf
関数型 : double modf(double x, double *ip);
引数  : 任意の実数値、返される整数部部分の値
戻り値 : 小数部分の値
機能  : 実数値を整数部分と小数部分に分ける。


frexp
関数型 : double frexp(double x, int *p);
引数  : 任意の実数値、返される指数部分の値
戻り値 : 仮数部分の値
機能  : 浮動小数点値の指数部と仮数部を求める


ldexp
関数型 : double ldexp(double x, int p);
引数  : 仮数部、指数部
戻り値 : 合成された浮動小数点値
機能  : 仮数部と指数部から浮動小数点値を求める。


時間
時刻を取り扱う関数群。これらの関数はUNIXの慣習から
世界協定時刻(UTC)における 1970年1月1日0時0分0秒 を基準としている。
今後、説明文中では 1970年1月1日0時0分0秒 を 基準時刻 と表記する。


time
関数型 : time_t time(time_t *t);
引数  : 時刻を格納する変数のアドレス
戻り値 : 基準時刻からの経過秒数
機能  : 現在の時刻を基準時刻からの経過秒数で返す。
補足  : 引数を NULL で呼び出して戻り値だけを取得できる。環境によっては秒以外の単位を使うこともあります。


clock
関数型 : clock_t clock(void);
引数  : なし
戻り値 : 使用プロセス時間
機能  : プログラムが使用したプロセス時間を返す。
補足  : clock() / CLOCKS_PER_SEC とすることで秒単位の値を得られる。
注意  : マルチスレッド環境では経過時刻と一致しない。


difftime
関数型 : double difftime(time_t t1, time_t t2);
引数  : 基準時刻からの経過秒数1、基準時刻からの経過秒数2
戻り値 : 2つの経過秒数の差
機能  : 時刻の引き算をする環境によっては秒以外の単位を使うこともあります。


localtime
関数型 : struct tm *localtime(const time_t *t);
引数  : 基準時刻からの経過秒数
戻り値 : 秒数を国内時刻情報に変換した構造体
機能  : 基準時刻からの経過秒数を国内時刻に変換する。
注意  : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。


gmtime
関数型 : struct tm *gmtime(const time_t *t);
引数  : 基準時刻からの経過秒数
戻り値 : 秒数を国際時刻情報に変換した構造体
機能  : 基準時刻からの経過秒数を国際時刻に変換する。
注意  : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。


asctime
関数型 : char *asctime(const struct tm *tm);
引数  : 時刻を格納した構造体
戻り値 : 時刻を変換した文字列の先頭アドレス
機能  : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
注意  : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。


ctime
関数型 : char *ctime(const time_t *t);
引数  : 基準時刻からの経過秒数
戻り値 : 時刻を変換した文字列の先頭アドレス
機能  : 時刻を Wed Feb 17 20:14:04 1988 のような文字列に変換する。
注意  : 戻り値はシステム全体で共有されたメモリ領域なので、必ず、別途宣言した構造体にコピーしておく必要がある。


strftime
関数型 : size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp);
引数  : 文字配列、文字配列のサイズ、時刻書式指定文字列、時刻を格納した構造体
戻り値 : 配列に書き込まれた文字数。失敗した場合は0。
機能  : 時刻を指定された書式通りに文字列に変換する。


制御
主にプログラムの制御を行う関数群。
なお、これらはそれぞれヘッダーファイルが異なる。

<assert.h> を必要とする関数群


assert
関数型 : void assert(int expression);
引数  : 診断する変数値
戻り値 : なし
機能  : デバッグのために診断を行う。
補足  : 引数に設定された値が0の場合、実行中のソースファイル名と行番号を表示して急性終了します。NDEBUG定数を定義しておくとコンパイルの段階で取り除かれます。


<signal.h> を必要とする関数群


raise
関数型 : int raise(int sig);
引数  : 送信するシグナル値
戻り値 : 成功した場合は0、失敗した場合は0以外。
機能  : プログラムにシグナルを送信する。



signal
関数型 : void (*signal(int sig, void (*handler)()))();
引数  : 設定するシグナル値、シグナルを処理する関数のアドレス
戻り値 : 以前に設定されていた関数のアドレス、失敗した場合はSIG_ERR。
機能  : シグナルを処理する関数を設定する。


<setjmp.h> を必要とする関数群


setjmp
関数型 : int setjmp(jmp_buf env);
引数  : ジャンプ先の状態を格納する変数のアドレス
戻り値 : 最初に呼ばれたときは0、longjmpで戻ったときはその値。
機能  : longjmp関数に備えて状態を保存する。
注意  : プログラムの流れをグチャグチャにする凶悪な関数であり、よほどの事情でもない限り使用してはいけない。



longjmp
関数型 : void longjmp(jmp_buf env, int val);
引数  : ジャンプ先の状態が格納された変数のアドレス、任意の戻り値
戻り値 : なし
機能  : 関数間をまたぐ広域ジャンプを行う
注意  : プログラムの流れをグチャグチャにする凶悪な関数であり、よほどの事情でもない限り使用してはいけない。




本サイトについて

苦しんで覚えるC言語(苦C)は
C言語入門サイトの決定版です。
C言語の基本機能を体系立てて解説しており、
市販書籍と同等以上の完成度です。

第0部:プログラム概要編
  1. プログラムとは何か?
2章:プログラムの書き方
  1. 書き方のルール
  2. 書き方の慣習
  3. 練習問題2
3章:画面への表示
  1. 文字列の表示
  2. 改行文字
  3. 練習問題3
6章:キーボードからの入力
  1. 入力用の関数
  2. 入力の恐怖
  3. 練習問題6
9章:回数が決まっている繰り返し
  1. 繰り返しを行う文
  2. ループ動作の仕組み
  3. 練習問題9
10章:回数がわからない繰り返し
  1. 回数不明ループ
  2. 入力チェック
  3. 練習問題10
13章:複数の変数を一括して扱う
  1. 複数の変数をまとめて扱う
  2. 配列の使い方
  3. 練習問題13
20章:複数のソースファイル
  1. 最小限の分割
  2. 分割の定石
  3. 練習問題20

コメント
COMMENT

💬 コメント投稿欄を開く