表紙 <戻 進> i-mobile

   標準ライブラリ関数一覧   

  1. 第1項:入出力 <stdio.h>
  2. 第2項:汎用 <stdlib.h>
  3. 第3項:文字処理 <ctype.h>
  4. 第4項:文字列処理 <string.h>
  5. 第5項:数学関数 <math.h>
  6. 第6項:時間 <time.h>
  7. 第7項:制御

[1]入出力 <stdio.h>


主にファイルを取り扱う関数です。
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。
機能  : 標準入力(キーボード)から文字列を読み込み指定された形式に変換する。
注意  : 他の入力関数と一緒に使うと思わぬ動作をすることがある。

目次に戻る


[2]汎用 <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  ]
関数型 : 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を返します。

目次に戻る


[3]文字処理 <ctype.h>


半角文字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進数用の文字か判定する。

目次に戻る


[4]文字列処理 <string.h>


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

[  strcpy  ]
関数型 : char *strcpy(char *s, const char *t);
引数  : 文字配列、文字列
戻り値 : 引数の文字配列をそのまま返す
機能  : 文字配列に文字列をコピーする。文字列の代入に使用する。
[  strncpy  ]
関数型 : char *strncpy(char *s, const char *t, size_t n);
引数  : 文字配列、文字列、最大コピー文字数
戻り値 : 引数の文字配列をそのまま返す。
機能  : 文字配列に指定文字数だけ文字列をコピーする。
注意  : 文字数が多い場合にはナル文字を付加しないので、
     必ず、s[n] = '\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文字検索にも使える。

目次に戻る


[5]数学関数 <math.h>


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

ラジアン = (度 * 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);
引数  : 仮数部、指数部
戻り値 : 合成された浮動小数点値
機能  : 仮数部と指数部から浮動小数点値を求める。

目次に戻る


[6]時間 <time.h>


時刻を取り扱う関数群。これらの関数は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。
機能  : 時刻を指定された書式通りに文字列に変換する。

目次に戻る


[7]制御

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

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

目次に戻る



<−前に戻る  先頭に戻る  次へ進む−>