ANSI C言語 関数表


目次

アルファベット順索引 - 計152関数の索引
 ストリーム入出力関数 - stdio.hな関数
 文字判別関数 - ctype.hな関数
 文字列関数 - string.hな関数
 数学関数 - math.hな関数
 時間関数 - time.hな関数
 スタンダード関数 - stdlib.hな関数
 ANSI非互換で有用な関数 - UNIX互換などで有用なもの


アルファベット順索引

abort       abs         access      acos        asctime     asin        atan        atan2       atexit      atof        atoi        atol        brk         bsearch     cabs        calloc      ceil        chdir       chmod       clearerr    clock       close       cos         cosh        creat       ctime       difftime    div         dup         dup2        eof         exit        exp         fabs        fclose      fcloseall   fdopen      feof        ferror      fflush      fgetc       fgetpos     fgetpos     fgets       fileno      floor       flushall    fmod        fopen       fprintf     fputc       fputs       fread       free        freopen     frexp       fscanf      fseek       fsetpos     fsetpos     fstat       ftell       fwrite      getc        getchar     getenv      gets        getw        gmtime      isalnum     isalpha     iscntrl     isdigit     isgraph     islower     isprint     ispunct     isspace     isupper     isxdigit    itoa        labs        ldexp       ldiv        localtime   log         log10       longjmp     lseek       malloc      memchr      memcmp      memcpy      memmove     memset      mktime      modf        open        perror      pow         printf      putc        putchar     puts        qsort       rand        read        realloc     remove      rename      rewind      scanf       setbuf      setjmp      setvbuf     sin         sinh        sprintf     sqrt        srand       sscanf      stat        strcat      strchr      strcmp      strcpy      strcspn     strerror    strftime    strlen      strncat     strncmp     strncpy     strpbrk     strrchr     strspn      strstr      strtod      strtok      strtol      strtoul     system      tan         tanh        tell        time        tmpfile     tmpnam      tolower     toupper     ungetc      write                  

※ANSI互換ではないが、有用でかつ有名なUNIX互換の関数も載せてあります。


ストリーム入出力関数

  fopen
FILE *fopen(const char *fi, const char *mode)
stdio.h
filenameに指定されたファイルをオープンする.成功すればそのストリームを返す.エラーの場合はNULLを返す.

mode
  "r"  読み込みモード
  "w"  書き込みモード
  "a"  追加モード
  "r+"  読み書きモード
  "w+"  読み書きモード.既存のものは捨てられる
  "a+"  読み書きモード.ファイルポインタは終端にセット
※更新(読み書き)モードで開いたファイルは、入力と出力を切り替えるためにはfseekやrewindを使用する必要があります。

改行文字の変換モード(テキストモード/バイナリモード)を変更するには、modeに次の文字を追加します。
  "t"  テキストモード
  "b"  バイナリモード
省略するとテキストモードになります。

  freopen
FILE *fopen(const char *filename, const char *mode, FILE *stream)
stdio.h
指定されたモードでオープンしたファイルを,streamと結び付ける.成功すればstreamを,失敗すればNULLを返す.

  fflush
int fflush(FILE *stream)
stdio.h
streamをフラッシュする.成功すれば0 ,失敗すればEOF を返す.streamにNULLを指定すると,すべての出力ストリームがフラッシュされる.

  fclose
int fclose(const char *filename)
stdio.h
指定したファイルをクローズする.必要ならば,バッファはフラッシュされる.成功すれば0 ,失敗すればEOF を返す.

  remove
int remove(const char *filename)
stdio.h
指定したファイルを削除する.失敗した場合は0 でない値を返す.

  rename
int rename(const char *oldname, const char *newname)
stdio.h
ファイル名を,oldname からnewname に変更する.変更できない場合は,0 でない値を返す.

  tmpfile
FILE *tmpfile(void)
stdio.h
モード"wb+" のテンポラリファイルをオープンする.このファイルは,クローズされたとき,あるいはプログラムが正常に終了したときに自動的に削除される.成功すればストリームを,失敗すればNULLを返す.

  tmpnam
char *tmpnam(char s[L_tmpnam])
stdio.h
ユニークなファイル名を作成する.ファイル名は文字列としてs に格納される.s は少なくともL_tmpnam文字を格納できるだけの大きさが必要.tmpnam(NULL)とすると,内部の静的な領域にファイル名を格納する.tmpnam()は,作成された文字列へのポインタを返す.

  setvbuf
int setvbuf(FILE *stream, char *buf, int mode, size_t size)
stdio.h
streamのバッファリングを制御する.buf がNULLでなければ,それがバッファとして使われる.NULLならば割り当てられる.バッファの大きさはsizeによって決まる.エラーが起きれば,0 でない値が返る.

mode
  _IOFBF  フルバッファリング.
  _IOLBF  行バッファリング.改行文字出力時にフラッシュされる.
  _IONBF  バッファリングなし.buf ,sizeは無視される.

  setbuf
void setbuf(FILE *stream, char *buf)
stdio.h
buf がNULLならば,streamに対するバッファリングをおこなわなくなる.そうでなければ,(void)setvbuf(stream, buf, _IOFBF, BUFSIZ)と同等.

  fprintf
int fprintf(FILE *stream, const char *format, ...)
stdio.h
formatの変換仕様に基づき,streamに出力をおこなう.成功すれば書き出された文字数を返し,失敗すれば負の数を返す.

変換仕様:%[フラグ][印字幅][.精度][修飾子]型

フラグ
  -  左そろえを指定
  +  数の符号の付加を指定
  space  負の数なら'-' を付加
  0  数の左側を'0' で埋める
  #  出力系式の指定

印字幅
  n  少なくともn 文字印字する
  *  引数リストにある数値を使用する

修飾子
  h  [unsigned] short
  l  [unsigned] long
  Llong double


  d,i  符号つき10進数
  o  符号なし8 進数
  x,X  符号なし16進数
  u  符号なし10進数
  c  文字
  s  文字列
  f  double:[-]mmmm.ddd形式
  e,E  double:[-]m.ddde+xx形式
  g,G  double:%fまたは%e(%E).選択は精度による
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  %  '%' そのもの

  printf
int printf(const char *format, ...)
stdio.h
formatの変換仕様に基づき,stdoutに出力をおこなう.成功すれば書き出された文字数を返し,失敗すれば負の数を返す.

変換仕様:%[フラグ][印字幅][.精度][修飾子]型

フラグ
  -  左そろえを指定
  +  数の符号の付加を指定
  space  負の数なら'-' を付加
  0  数の左側を'0' で埋める
  #  出力系式の指定

印字幅
  n  少なくともn 文字印字する
  *  引数リストにある数値を使用する

修飾子
  h  [unsigned] short
  l  [unsigned] long
  Llong double


  d,i  符号つき10進数
  o  符号なし8 進数
  x,X  符号なし16進数
  u  符号なし10進数
  c  文字
  s  文字列
  f  double:[-]mmmm.ddd形式
  e,E  double:[-]m.ddde+xx形式
  g,G  double:%fまたは%e(%E).選択は精度による
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  %  '%' そのもの

  sprintf
int sprintf(char *s, const char *format, ...)
stdio.h
printfの出力を,文字列s に対しておこなう.s の最後には'\0'が付加される.戻り値にはs の長さを返す.

変換仕様:%[フラグ][印字幅][.精度][修飾子]型

フラグ
  -  左そろえを指定
  +  数の符号の付加を指定
  space  負の数なら'-' を付加
  0  数の左側を'0' で埋める
  #  出力系式の指定

印字幅
  n  少なくともn 文字印字する
  *  引数リストにある数値を使用する

修飾子
  h  [unsigned] short
  l  [unsigned] long
  Llong double


  d,i  符号つき10進数
  o  符号なし8 進数
  x,X  符号なし16進数
  u  符号なし10進数
  c  文字
  s  文字列
  f  double:[-]mmmm.ddd形式
  e,E  double:[-]m.ddde+xx形式
  g,G  double:%fまたは%e(%E).選択は精度による
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  %  '%' そのもの

  fscanf
int fscanf(FILE *stream, const char *format, ...)
stdio.h
変換仕様に基づきstreamから読み込みをおこない,結果を引数に代入する.formatが尽きると実行は終了する.通常は代入された項目数を返す.変換の前にファイルの終わりがくるか,エラーが生じればEOF を返す.

変換仕様:%[*][入力幅][修飾子]型

*  代入抑制

入力幅  読むべき文字数の最大値

修飾子
  hint -> short
  lint -> long / float -> double
  Lfloat, double -> long double


  d  10進数
  i  整数.10進数,8 進数,16進数のいずれか
  o  8 進数
  u  符号なし10進数
  x  16進数
  c  文字
  s  非空白文字の文字列
  e,f,g  浮動小数点数(float)
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  [...]  文字集合からなる空でない文字列
  [^..]  文字集合にない文字からなる空でない文字列
  %  '%' そのもの

  scanf
int scanf(const char *format, ...)
stdio.h
変換仕様に基づきstdin から読み込みをおこない,結果を引数に代入する.formatが尽きると実行は終了する.通常は代入された項目数を返す.変換の前にファイルの終わりがくるか,エラーが生じればEOF を返す.

変換仕様:%[*][入力幅][修飾子]型

*  代入抑制

入力幅  読むべき文字数の最大値

修飾子
  hint -> short
  lint -> long / float -> double
  Lfloat, double -> long double


  d  10進数
  i  整数.10進数,8 進数,16進数のいずれか
  o  8 進数
  u  符号なし10進数
  x  16進数
  c  文字
  s  非空白文字の文字列
  e,f,g  浮動小数点数(float)
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  [...]  文字集合からなる空でない文字列
  [^..]  文字集合にない文字からなる空でない文字列
  %  '%' そのもの

  sscanf
int sscanf(char *s, const char *format, ...)
stdio.h
変換仕様に基づき文字列s から読み込みをおこない,結果を引数に代入する.formatが尽きると実行は終了する.通常は代入された項目数を返す.変換の前にファイルの終わりがくるか,エラーが生じればEOF を返す.

変換仕様:%[*][入力幅][修飾子]型

*  代入抑制

入力幅  読むべき文字数の最大値

修飾子
  hint -> short
  lint -> long / float -> double
  Lfloat, double -> long double


  d  10進数
  i  整数.10進数,8 進数,16進数のいずれか
  o  8 進数
  u  符号なし10進数
  x  16進数
  c  文字
  s  非空白文字の文字列
  e,f,g  浮動小数点数(float)
  p  ポインタ
  n  これまで書き出された文字数を対応する引数に書き込む
  [...]  文字集合からなる空でない文字列
  [^..]  文字集合にない文字からなる空でない文字列
  %  '%' そのもの

  fgetc
int fgetc(FILE *stream)
stdio.h
streamの次の文字をint に変換して返す.ファイルの終わり,あるいはエラーの場合はEOF を返す.

  fgets
char fgets(char *s, int n, FILE *stream)
stdio.h
streamの次の行を読み込みs に格納する.最大n-1 文字を読み込む.文字列s には,最後の改行が含められる.成功すればs へのポインタを,ファイルの終わりあるいはエラーの場合はNULLを返す.

  fputc
int fputc(int c, FILE *stream)
stdio.h
文字c をstreamに書き込む.成功すれば負でない値を返し,失敗すればEOF を返す.

  fputs
int fputs(const char *s, FILE *stream)
stdio.h
文字列s をstreamに書き込む.成功すれば負でない値を返し,失敗すればEOF を返す.

  getc
int getc(FILE *stream)
stdio.h
streamの次の文字をint に変換して返す.ファイルの終わり,あるいはエラーの場合はEOF を返す.

  getchar
int getchar(void)
stdio.h
標準入力の次の文字をint に変換して返す.ファイルの終わり,あるいはエラーの場合はEOF を返す.

  gets
char *gets(char *s)
stdio.h
標準入力から行を読み込みs に格納する.最後の改行記号は'\0'に変換される.成功すればs へのポインタ,ファイルの終わりあるいはエラーの場合はNULLを返す.

  putc
int putc(int c, FILE *stream)
stdio.h
文字c をstreamに書き込む.成功すれば負でない値を返し,失敗すればEOF を返す.

  putchar
int putchar(int c)
stdio.h
文字c を標準出力に書き込む.成功すれば負でない値を返し,失敗すればEOF を返す.

  puts
int puts(const char *s)
stdio.h
標準出力に文字列s と改行を書き出す.成功すれば負でない値を返し,失敗すればEOF を返す.

  ungetc
int ungetc(int c, FILE *stream)
stdio.h
文字c をstreamに戻す.戻せる文字は1度に1文字だけである.EOF は戻せない.成功すれば戻した文字を,失敗すればEOF を返す.

  fread
size_t fread(void *ptr, size_t size, size_t nobj, FILE *stream)
stdio.h
sizeの大きさを持つnobj個のオブシェクトをstreamから読み込み,配列ptr に格納する.読み込まれたオブジェクトの数を返す.戻り値はnobjに満たないこともありうる.

  fwrite
size_t fwrite(const void *ptr, size_t size, size_t nobj, FILE *stream)
stdio.h
sizeの大きさを持つnobj個のオブジェクトを配列ptr からstreamに書き込む.実際に書き込んだオブジェクトの数を返す.

  fseek
int fseek(FILE *stream, long offset, int origin)
stdio.h
streamに対してファイルの位置をセットする.エラーの場合は0 でない値を返す.

origin
  SEEK_SET  ファイルの先頭
  SEEK_CUR  現在位置
  SEEK_END  ファイルの終わり

  ftell
long ftell(FILE *stream)
stdio.h
streamに対する現在のファイル位置を返す.エラーの場合は-1L を返す.

  rewind
void rewind(FILE *stream)
stdio.h
streamに対してファイルの位置を先頭にセットする.エラーフラグもクリアされる.

  fgetpos
int fgetpos(FILE *stream, fpos_t *ptr)
stdio.h
streamに対する現在のファイル位置を,fsetpos() のためにptr に記録する.エラーの場合は0 でない値を返す.

  fsetpos
int fsetpos(FILE *stream, const fpos_t *ptr)
stdio.h
fgetpos() で記録した位置に,ストリームをあわせる.エラーの場合は0 でない値を返す.

  clearerr
void clearerr(FILE *stream)
stdio.h
streamに対するEOF フラグとエラーフラグをクリアする.

  feof
int feof(FILE *stream)
stdio.h
streamに対するファイルの終わりを示すフラグがセットされると,0 でない値を返す.

  ferror
int ferror(FILE *stream)
stdio.h
streamに対するエラーフラグがセットされると,0 でない値を返す.

  perror
int perror(const char *s)
stdio.h
エラーメッセージを出力する.


文字判別関数

  isalnum
int isalnum(int c)
ctype.h
c が[^0-9a-zA-Z]であれば,0 でない値を返す.

  isalpha
int isalpha(int c)
ctype.h
c が[a-zA-Z]であれば,0 でない値を返す.

  iscntrl
int iscntrl(int c)
ctype.h
c が制御文字(0x00〜0x1F, 0x7F)であれば,0 でない値を返す.

  isdigit
int isdigit(int c)
ctype.h
c が10進数を表す文字([0-9]) であれば,0 でない値を返す.

  isgraph
int isgraph(int c)
ctype.h
c がスペース以外の印字可能文字であれば,0 でない値を返す.

  islower
int islower(int c)
ctype.h
c が小文字であれば,0 でない値を返す.

  isprint
int isprint(int c)
ctype.h
c がスペースを含む印字可能文字であれば,0 でない値を返す.

  ispunct
int ispunct(int c)
ctype.h
c がスペース,英字,数字以外の印字可能文字であれば,0 でない値を返す.

  isspace
int isspace(int c)
ctype.h
c が' ','\f','\n','\r','\t','\v' のいずれかであれば,0 でない値を返す.

  isupper
int isupper(int c)
ctype.h
c が大文字であれば,0 でない値を返す.

  isxdigit
int isxdigit(int c)
ctype.h
c が16進数を表す文字([0-9a-zA-Z]) であれば,0 でない値を返す.

  tolower
int tolowr(int c)
ctype.h
c が大文字ならば,それを小文字に変換する.そうでなければc を返す.

  toupper
int toupper(int c)
ctype.h
c が小文字ならば,それを大文字に変換する.そうでなければc を返す.


文字列関数

  strcpy
char *strcpy(char *s, const char *t)
string.h
文字列t をs にコピーし,s を返す.

  strncpy
char *strcpy(char *s, const char *t, size_t n)
string.h
文字列t のうち最大n 文字をs にコピーし,s を返す.

  strcat
char *strcat(char *s, const char *t)
string.h
文字列t をs の後ろに連結し,s を返す.

  strncat
char *strcat(char *s, const char *t, size_t n)
string.h
文字列t のうち最大n 文字をs の後ろに連結し,s を返す.

  strcmp
int strcmp(const char *s, const char *t)
string.h
文字列s と文字列t を比較する.戻り値は次の通り.
  s < t   負の数
  s == t  0
  s > t   正の数

  strncmp
char *strcmp(const char *s, const char *t, size_t n)
string.h
文字列s と文字列t の最大n 文字を比較する.戻り値は次の通り.
  s < t   負の数
  s == t  0
  s > t   正の数

  strchr
char *strchar(const char *s, int c)
string.h
文字列s の中に現れる,最初のc へのポインタを返す.見つからなければNULLを返す.

  strrchr
char *strrchr(const char *s, int c)
string.h
文字列s の中に現れる,最後のc へのポインタを返す.見つからなければNULLを返す.

  strspn
size_t strspn(const char *s, const char *t)
string.h
文字列t に含まれる文字からなる文字列s の接頭子の長さを返す.

  strcspn
size_t strspn(const char *s, const char *t)
string.h
文字列t に含まれない文字からなる文字列s の接頭子の長さを返す.

  strpbrk
char *strpbrk(const char *s, const char *t)
string.h
文字列s の中で文字列t に含まれる任意の文字が最初に現れる位置へのポインタ.見つからなければNULLを返す.

  strstr
char *strstr(const char *s, const char *t)
string.h
文字列s の中で文字列t が最初に現れる位置へのポインタ.見つからなければNULLを返す.

  strlen
size_t strlen(const char *s)
string.h
文字列s の長さを返す.

  strerror
char *strerror(int n)
string.h
エラー番号n に対応する文字列へのポインタを返す.

  strtok
char *strtok(char *s, const char *t)
string.h
文字列s から,文字列t の中の文字によって区切られる語を切り出す.最初の呼び出しでひとつめの語へのポインタを返す.それ以降,s にNULLを指定すれば,次々に語を切り出しポインタを返す.語がなくなればNULLを返す.

  memcpy
void *memcpy(void *s, const void *t, size_t n)
string.h
t のn 文字をs にコピーし,s を返す.各領域がオーバーラップしているときの動作は不定.

  memmove
void *memmove(void *s const void *t, size_t n)
string.h
t のn 文字をs にコピーし,s を返す.各領域がオーバーラップしていても正しく動作する.

  memcmp
int memcmp(const void *s, const void *t, size_t n)
string.h
s の中のn 文字をt と比較する.戻り値は次の通り.
  s < t   負の数
  s == t  0
  s > t   正の数

  memchr
void *memchr(const void *s, int c, size_t n)
string.h
s の中で最初にc が現れる位置へのポインタを返す.最初のn 文字の中にない場合はNULLを返す.

  memset
void *memset(void *s, int c, size_t n)
string.h
s の最初のn 文字にc をセットし,s を返す.


数学関数

  sin
double sin(double x)
math.h
x の正弦.単位はラジアン.

  cos
double cos(double x)
math.h
x の余弦.単位はラジアン.

  tan
double tan(double x)
math.h
x の正接.単位はラジアン.

  asin
double asin(double x)
math.h
x の逆正弦.単位はラジアン.x の範囲は[-1, 1].

  acos
double acos(double x)
math.h
x の逆正弦.単位はラジアン.x の範囲は[-1, 1].

  atan
double atan(double x)
math.h
x の逆正接.単位はラジアン.

  atan2
double atan2(double y, double x)
math.h
y/x の逆正接.単位はラジアン.

  sinh
double sinh(double x)
math.h
x の双曲線正弦.単位はラジアン.

  cosh
double cosh(double x)
math.h
x の双曲線余弦.単位はラジアン.

  tanh
double tanh(double x)
math.h
x の双曲線正接.単位はラジアン.

  exp
double exp(double x)
math.h
指数関数.e のx 乗.

  log
double log(double x)
math.h
自然対数.(x > 0)

  log10
double log10(double x)
math.h
常用対数.(x > 0)

  pow
double pow(double x, double y)
math.h
x のy 乗.

  sqrt
double sqrt(double x)
math.h
x の平方根.(x >= 0)

  ceil
double ceil(double x)
math.h
x より小さくない最小の整数.

  floor
double floor(double x)
math.h
x より大きくない最大の整数.

  fabs
double fabs(double x)
math.h
x の絶対値.

  ldexp
double idexp(double x, int n)
math.h
x を2 のn 乗倍する.

  frexp
double frexp(double x, int *exp)
math.h
x を指数部と仮数部に分割する.仮数部は[0.5, 1)に正規化され,指数部は2 のベキで表される.戻り値は仮数部で,指数部は*expに格納される.x が0 なら,結果は両方とも0 となる.

  modf
double modf(double x, double *ip)
math.h
x を整数部と小数部に分割する.それぞれx と同じ符号をもつ.整数部は*ip に格納され,小数部を返す.

  fmod
double fmod(double x, double y)
math.h
x/y の余りを求める.その符号はx と同じである.


スタンダード関数

  atof
double atof(const char *s)
stdlib.h
s をdoubleに変換する.strtod(s, (char **)NULL)と同じ.

  atoi
int atoi(const char *s)
stdlib.h
s をint に変換する.(int)strtol(s, (char **)NULL, 10) と同じ.

  atol
long atol(const char *s)
stdlib.h
s をlongに変換する.strtol(s, (char **)NULL, 10)と同じ.

  strtod
double strtod(const char *s, char **endp)
stdlib.h
s をdoubleに変換する.s の最初の空白はスキップされる.endpがNULLでなければ,変換をやめた位置へのポインタを*endp に格納する.答がオーバーフローする場合はHUGE_VALを返す.アンダーフローするなら0 を返す.

  strtol
long strtol(const char *s, char **endp, int base)
stdlib.h
s をbaseを基数とする数値と見なしてlongに変換する.s の最初の空白はスキップされる.endpがNULLでなければ,変換をやめた位置へのポインタを*endp に格納する.答がオーバーフローした場合,結果の符号によってLONG_MAXかLONG_MINを返す.

base

  0  先頭が0 なら8 進数,0xなら16進数,それ以外は10進数.

  2-36  2 進数〜36進数と見なして変換.

  strtoul
  unsigned long strtol(const char *s, char **endp, int base)
stdlib.h
s をbaseを基数とする数値と見なしてunsigned long に変換する.s の最初の空白はスキップされる.endpがNULLでなければ,変換をやめた位置へのポインタを*endp に格納する.答がオーバーフローした場合,ULONG_MAXを返す.

base

  0  先頭が0 なら8 進数,0xなら16進数,それ以外は10進数.

  2-36  2 進数〜36進数と見なして変換.

  rand
int rand(void)
stdlib.h
[0, RAND_MAX] の範囲の疑似乱数整数を返す.

  srand
void srand(unsigned int seed)
stdlib.h
疑似乱数の新しい系列の種としてseedを使う.

  calloc
void *calloc(size_t nobj, size_t size)
stdlib.h
それぞれの大きさがsizeであるnobj個のオブジェクトからなる配列を入れるための領域へのポインタを返す.領域の確保に失敗した場合はNULLを返す.この領域は0 に初期化される.

  malloc
void *malloc(size_t size)
stdlib.h
大きさsizeのオブジェクトを入れるための領域へのポインタを返す.領域の確保に失敗した場合はNULLを返す.

  realloc
void *realloc(void *p, size_t size)
stdlib.h
p によって指されるオブジェクトの大きさをsizeに変える.新しい領域の方が大きいときには,拡張された部分は初期化されない.realloc は新しい領域へのポインタを返す.失敗した場合はNULLを返すが,p は変化しない.

  free
void free(void *p)
stdlib.h
p が指す領域を開放する.p がNULLのときは何も起こらない.p はcalloc,malloc,あるいはrealloc によって割り当てられた領域へのポインタでなければならない.

  abort
void abort(void)
stdlib.h
プログラムを異常終了させる.

  exit
void exit(int status)
stdlib.h
プログラムを正常終了させる.

  atexit
int atexit(void (*fcn)(void))
stdlib.h
プログラムが正常終了したときに呼ばれる関数fcn を登録する.

  system
int system(const char *s)
stdlib.h
文字列s を環境に渡す.s がNULLのときは,コマンドプロセッサがあれば0 でない値を返す.s がNULLでないときの動作は処理系に依存する.

  getenv
char *getenv(const char *name)
stdlib.h
nameで表される環境変数文字列へのポインタを返す.存在しない場合はNULLを返す.

  bsearch
void *bsearch(const void *key, const void *base, size_t n, size_t size, int (*cmp)(const void *keyval, const void *datum))
stdlib.h
大きさsizeのオブジェクトの配列base[0]..base[n-1]から*keyにマッチする項目を探す.baseは昇順にソートされていなければならない.マッチする項目があれば,それへのポインタを返す.なければNULLを返す.

関数cmp の戻り値
  *keyval <  *datum  負の数
  *keyval == *datum  0
  *keyval >  *datum  正の数

  qsort
void qsort(void *base, size_t n, size_t size, int (*cmp)(const void *, const void *))
stdlib.h
大きさsizeのオブジェクトの配列base[0]..base[n-1]をソートする.

関数cmp の戻り値
  arg1 <  arg2  負の数
  arg1 == arg2  0
  arg1 >  arg2  正の数

  abs
int abs(int n)
stdlib.h
引数の絶対値を返す.

  labs
long labs(long n)
stdlib.h
引数の絶対値を返す.

  div
div_t div(int num, int denom)
stdlib.h
num/denom の商と余りを求める.結果をdiv_t 型構造体に返す.

typedef struct { int quot, rem; } div_t;

  ldiv
div_t ldiv(long num, long denom)
stdlib.h
num/denom の商と余りを求める.結果をldiv_t型構造体に返す.

typedef struct { long quot, rem; } ldiv_t;


時間関数

  struct tm
struct tm {
  int tm_sec;    /*  秒 [0..61] */
  int tm_min;    /*  分 [0..59] */
  int tm_hour;  /*  時 [0..23] */
  int tm_mday;  /*  日 [1..31] */
  int tm_mon;    /*  1月以来の月 [0..11] */
  int tm_year;  /*  1900年以来の年 */
  int tm_wday;  /*  日曜以来の日 [0..6] */
  int tm_yday;  /*  1月1日以来の日 [0..365] */
  int tm_isdst;  /*  夏時間フラグ */
};

  clock
clock_t clock(void)
time.h
実行開始以来,プログラムが消費したプロセッサ時間を返す.プロセッサ時間がわからないときには-1を返す.CLK_TCK は1秒当たりの単位プロセッサ時間を表す.

  time
time_t time(time_t *tp)
time.h
現在のカレンダー時間を返す.時間が分からなければ-1を返す.tpがNULLでなければ,*tp にも戻り値が割り当てられる.

  difftime
double difftime(time_t time2, time_t time1)
time.h
秒で表したtime2-time1 を返す.

  mktime
time_t mktime(struct tm *tp)
time.h
構造体*tp にあるローカル時間を,カレンダー時間に変換する.時間が表現できないときは-1を返す.

  asctime
char *asctime(const struct tm *tp)
time.h
構造体*tp にある時間を次のような文字列に変換する.文字列は静的に割り付けられていて,上書きされることがある.

Fri Apr  2 01:23:45 1971\n\0

  ctime
char *ctime(const time_t *tp)
time.h
カレンダー時間*tp をローカル時間を表す文字列に変換する.文字列は静的に割り付けられていて,上書きされることがある.

Fri Apr  2 01:23:45 1971\n\0

  gmtime
struct tm *gmtime(const time_t *tp)
time.h
カレンダー時間*tp をUTC(GMT)に変換する.UTC が使えないときにはNULLを返す.戻り値が指すオブジェクトは静的なものであり,上書きされることがある.

  localtime
struct tm *localtime(const time_t *tp)
time.h
カレンダー時間*tp をローカル時間に変換する.戻り値が指すオブジェクトは静的なものであり,上書きされることがある.

  strftime
size_t strftime(char *s, size_t smax, const char *fmt, const struct tm *tp)
time.h
日付と時間の情報を*tp からfmt にしたがってs に格納する.s に格納されるのは,たかだかsmax個の文字である.strftime()はs の長さを返す.smaxより多い文字数が生成された場合は0 を返す.

fmt
  %a  曜日(省略形)
  %A  曜日
  %b  月(省略形)
  %B  月
  %c  ローカルな日付と時間の表現
  %d  日 [01..31]
  %H  時(24時間制) [00..23]
  %I  時(12時間制) [01..12]
  %j  年間の日 [001..366]
  %m  月 [01..12]
  %M  分 [00..59]
  %p  ローカルなAMまたはPM
  %S  秒 [00..59]
  %U  年間の週(日曜が週の始まり) [00..53]
  %w  週間の日(日曜が週の始まり) [0..6]
  %W  年間の週(月曜が週の始まり) [00..53]
  %x  ローカルな日付の表現
  %X  ローカルな時刻の表現
  %y  世紀抜きの年 [00..99]
  %Y  世紀つきの年
  %Z  あればタイムゾーンの名前
  %%  %


ANSI非互換で有用な関数

  abort
void abort(void)
stdlib.h
stderrに異常終了を表すメッセージを出力し,終了コード3 でプログラムを終了させる.

  access
int access(const char *filename, int amode)
io.h
ファイルのアクセス権をチェックする.amode で指定する権利が許可されていれば0 を返す.filenameがディレクトリなら,単に存在のみをチェックする.

amode
  0x00  存在しているかどうかのチェック
  0x01  実行許可
  0x02  書き込み許可
  0x04  読み込み許可
  0x06  読み込み/書き込み許可

  assert
void assert(int test)
assert.h stdio.h
testが0 ならば,stderrにメッセージを出力し,abort() を呼び出してプログラムを終了させる.

  brk
int brk(void *addr)
alloc.h
データセグメントのスペース割り当てを変更する.成功すれば0 を返す.

  cabs
double cabs(struct complex z)
math.h
複素数の絶対値を計算する.

  chdir
int chdir(const char *path)
dir.h
カレントディレクトリをpathに変更する.ドライブ名を含めることもできるが,カレントドライブを変更することはできない.成功すれば0 を返す.

  chmod
int chmod(const char *filename, int amode)
io.h sys/stat.h
filenameに指定されたファイルのアクセス許可を,amode で指定された値にセットする.成功すれば0 を返す.

amode

  S_IWRITE: 書き込み許可

  S_IREAD:  読み込み許可

  close
int close(int handle)
io.h
handleのファイルをクローズする.必要ならば,バッファはフラッシュされる.成功すれば0 を返す.

  creat
int creat(const char *fname, int amode)
io.h sys/stat.h
ファイルを新たに作成する.成功すれば,新たに作られたファイルハンドルを返し,失敗すれば-1を返す.

amode
  S_IWRITE: 書き込み許可
  S_IREAD:  読み込み許可

  dup
int dup(int handle)
io.h
ファイルハンドルを複製する.成功すれば複製された新たなファイルハンドルを返し,失敗すれば-1を返す.

  dup2
int dup2(int oldhandle, int newhandle)
io.h
oldhandle をnewhandle に複製する.newhandle に既に割り当てられたファイルがあった場合,それはクローズされる.成功すれば0 を返し,失敗すれば-1を返す.

  eof
int eof(int handle)
io.h
handleがファイルエンドに到達しているかどうかをチェックする.ファイルエンドならば1 を返し,そうでなければ0 を返す.エラーが生じた場合は-1を返す.

  execl
int execl(char *path, char *arg0,... *argn, NULL)
process.h stdio.h
pathをロードし実行する.arg0,...argnが実行時の引数として渡される.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execle
int execle(char *path, char *arg0,... *argn, NULL, char **env)
process.h stdio.h
pathをロードし実行する.arg0,...argnが実行時の引数,env が環境として渡される.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execlp
int execlp(char *path, char *arg0,... *argn, NULL)
process.h stdio.h
pathをロードし実行する.arg0,...argnが実行時の引数として渡される.path
は環境変数PATHに従いサーチされる.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execlpe
int execlpe(char *path, char *arg0,... *argn, NULL, char **env)
process.h stdio.h
pathをロードし実行する.arg0,...argnが実行時の引数,env が環境として渡される.pathは環境変数PATHに従いサーチされる.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execv
int execv(char *path, char *argv[])
process.h stdio.h
pathをロードし実行する.配列argvが実行時の引数として渡される.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execve
int execve(char *path, char *argv[], char **env)
process.h stdio.h
pathをロードし実行する.配列argvが実行時の引数,env が環境として渡される.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execvp
int execvp(char *path, char *argv[])
process.h stdio.h
pathをロードし実行する.配列argvが実行時の引数として渡される.pathは環境変数PATHに従いサーチされる.成功した場合の戻り値はなく,失敗したときは-1を返す.

  execvpe
int execvpe(char *path, char *argv[], char **env)
process.h stdio.h
pathをロードし実行する.配列argvが実行時の引数,env が環境として渡される.pathは環境変数PATHに従いサーチされる.成功した場合の戻り値はなく,失敗したときは-1を返す.

  fcloseall
int fcloseall(void)
stdio.h
すべてのオープンされているストリームをクローズする.成功すればクローズされたストリームの数を返し,エラーが生じた場合はEOF を返す.

  fdopen
FILE *fdopen(int handle, char *mode)
stdio.h
handleを新たなストリームに結び付ける.成功すればそのストリームを返し,エラーが生じた場合はNULLを返す.

mode
  "r"  読み込みモード
  "w"  書き込みモード
  "a"  追加モード
  "r+"  読み書きモード
  "w+"  読み書きモード.古いものは捨てられる
  "a+"  読み書きモード.ファイルポインタは終端にセット

  fgetpos
int fgetpos(FILE *stream, fpos_t *pos)
stdio.h
streamのファイルポインタの位置を*posに格納する.成功すれば0 を返す.

  fileno
int fileno(FILE *stream)
stdio.h
streamのファイルハンドルを返す.

  flushall
int flushall(void)
stdio.h
オープンされているすべてのストリームをフラッシュする.オープンされているストリームの数を返す.エラーが生じた場合はEOF を返す.

  fsetpos
int fsetpos(FILE *stream, fpos_t *pos)
stdio.h
streamのファイルポインタの位置を*posにセットする.成功すれば0 を返す.

  fstat
int fstat(int handle, struct stat *statbuf)
sys/stat.h
ファイルの情報を得る.結果は*statbufに格納される.成功すれば0 を返す.エラーが生じた場合は-1を返す.

  getw
int getw(FILE *stream)
stdio.h
streamの次の整数を返す.ファイルの終わり,あるいはエラーの場合はEOF を返す.

  isatty
int isatty(int handle)
io.h
デバイスタイプをチェックする.キャラクタデバイスの場合は0 でない値を返す.

  itoa
char *itoa(int value, char *s, int radix)
stdlib.h
value を文字列に変換し,s に格納する.radix によって基底(2 〜36)を指定する.変換した文字列へのポインタを返す.

  lseek
long lseek(int handle, long offset, int origin)
io.h
ファイルの位置をoriginからoffsetバイト目にセットする.エラーの場合は0 でない値を返す.

origin
  SEEK_SET  ファイルの先頭
  SEEK_CUR  現在位置
  SEEK_END  ファイルの終わり

  open
int open(const char *filename, int access[, unsigned mode])
fcnti.h sys, stat.h
filenameに指定されたファイルをオープンする.成功すれば,負でない整数(ファイルハンドル)を返す.エラーの場合は-1となる.

access
  O_RDONLY  読み込み専用
  O_WRONLY  書き込み専用
  O_RDWR    読み書き可能
  O_APPEND  ファイルポインタを終端にセット
  O_CREAT   ファイルがなければ,modeを属性に持つファイルを作る
  O_TRUNC   ファイルがあれば,0 バイトに削る
  O_BINARY  バイナリモードでオープン
  O_TEXT    テキストモードでオープン

mode
  S_IWRITE  書き込み可能
  S_IREAD   読み込み可能

  read
int read(int handle, void *buf, unsigned len)
io.h
ファイルからlen バイトを読み込みbuf に格納する.buf に格納したバイト数を返す.EOF ならば0 ,エラーが生じた場合は-1を返す.

  stat
int stat(char *filename, struct stat *statbuf)
sys/stat.h
ファイルの情報を得る.結果は*statbufに格納される.成功すれば0 を返す.エラーが生じた場合は-1を返す.

  write
int write(int handle, void *buf, unsigned len)
io.h
len バイトのデータをbuf からファイルへ書き込む.実際に書き込んだデータのバイト数を返す.戻り値がlen より小さい場合,diskfullが起こった可能性がある.エラーが生じた場合は-1を返す.


著作権について

このHTMLは、North(pcs29507)氏によるan-c.dic Nov-05-1990 0.10 をベースにしています。
< an-c.dicの著作権 >

 このファイルはpublic domain におかれています.このファイルにま
つわるあらゆる権利は放棄されています.
an-c.dicに対して、itsがHTML化・編集して1998年より公開しています。