stdio.h 標準入出力

include <stdio.h>

C 言語ではよく使われる関数です。
z88dk では Z80 系プラットフォーム向けにいくつか関数が追加されています。

https://github.com/z88dk/z88dk/wiki/stdio


ファイル関連

  • FILE *fopen(char *name, unsigned char *mode)
    読み書きモード mode でファイル名 name を開きます。
    mode は w:書き込み r:読み込み s:ファイル末尾から追記 を指定できます。
    a はプラットフォームによって使用できない場合があります。
    また、プラットフォームによっては name が切り捨てられたり、
    null を返します。
  • FILE *freopen(char *name, unsigned char *mode, FILE *fp)
    読み書きモード mode でファイル名 name を開き、ファイルポインタ fp へ関連付けます。
    エラーの場合は fp または NULL を返します。
  • int fflush(FILE *fp)- メモリ上の情報をファイルへ反映します。
    z88dk ではスタプとして存在します。(単に BIOS コールを実行しているだけ)
  • int fclose(FILE *fp)
    ファイルポインタ fp を閉じます。
  • extern int remove(char *name)
    ファイル name を削除します。プラットフォームによっては動作しない場合があります。
  • int rename(char *s, char *d)
    ファイル名 s を d へ変更します。プラットフォームによっては動作しない場合があります。

キャラクター入出力関連

  • int fgetc(FILE *fp)
    fp から次の 1 文字を得ます。ファイルの終わりまたはエラーの場合は EOF を返します。
  • char *fgets(unsigned char *s, int n, FILE *fp)
    fp から配列 s へ 1 行最大 n-1 文字読み込みます。
    通常は s を返します。ファイルの終わりまたはエラーは NULL を返します。
  • int fputc(int c, FILE *fp)
    fp へ文字 c を書き込みます。正常時は文字 c、エラーの場合は EOF を返します。
  • int fputs(unsigned char *s, FILE *fp)
    配列 s の内容を fp へ書き込みます。正常時は 0 以上、エラーは EOF を返します。
  • int puts(unsigned char *s)
    文字列 s +改行を出力します。
  • int ungetc(int c, FILE *fp)
    文字 c をファイルポインタ fp へ戻します。
    次に文字を読み込んだ時、c の文字を得る事ができます。

ダイレクト入出力関連

  • int fread(void *ptr, int size, int num, FILE *fp)
    fp から size のオブジェクト最大 num 個を ptr に読み込みます。
    読み込んだオブジェクト数を返します。
  • int fwrite(void *ptr, int size, int num, FILE *fp)
    配列 ptr から pf へ size のオブジェクト num 個文書き込みます。
    書き込んだオブジェクト数を返します。

ファイル位置関連

  • int fseek(FILE *fp, fpos_t offset, int whence)
    fp の位置を whence から offset の位置に設定・変更します。
    whence は SEEK_SET: ファイルのはじめ、 SEEK_CUR: 現在位置、 SEEK_END: ファイルの終わり です。
  • fpos_t ftell(FILE *fp)
    ファイル fp の位置を得ます。
  • int fgetpos(FILE *fp, fpos_t *pos)
    fp の解析状態またはファイル位置を pos に返します。
  • int feof(FILE *fp)
    fp が終了しているかを確認します。

書式付き入出力関連

  • int printf(char *,…)
    書式文字列に従って標準出力へ出力します。
  • int fprintf(FILE *,char *,…)
    書式文字列に従ってストリームへ出力します。
  • int sprintf(char *,char *,…)
    書式文字列に従って配列に書き込みます。
  • int vsprintf(char *str,unsigned char *fmt,void *ap)
    可変長引数リストのデータを書式文字列 fmt に従って配列 str に書き込みます。
  • int scanf(unsigned char *fmt,…)
    標準入力から書式文字列に従ってデータを読み込みます。
  • int fscanf(FILE *,unsigned char *fmt,…)
    ストリームから書式文字列に従ってデータを読み込みます。
  • int sscanf(char *,unsigned char *fmt,…)
    指定した文字列から書式文字列に従ってデータを取得します。
  • int vfscanf(FILE *, unsigned char *fmt, void *ap)
    ストリーム から可変長引数リストを用いてデータを読み込みます。
  • int vsscanf(char *str, unsigned char *fmt, void *ap)
    指定した文字列から可変長引数リストを用いてデータを取得します。

コンソール関連

  • int fgetc_cons()
    コンソールから 1 文字得ます。
  • int fputc_cons(char c)
    コンソールに文字 c を出力します。
  • *int fgets_cons(char s, int n) コンソールから配列 s へ 1 行最大 n-1 文字読み込みます。\
  • *void puts_cons(unsigned char s) 文字列 s +改行をコンソールへ出力します。
  • void printk(char *fmt,…)
    書式文字列 fmt に従ってコンソールに出力します。\
  • int getk() コンソールから 1 文字得ます。

標準に含まれていない関数

  • printn(int number, int radix,FILE *file)
    ストリーム file へ文字 radix を number 文字出力します。
  • *int ltoa_any(long in,unsigned char str, int sz, unsigned int radix, int signflag)
  • **FILE fdopen(int fildes, unsigned char mode)
  • long fdtell(int fd)
  • *int fdgetpos(int fd, fpos_t posn)
  • void closeall()
    開いているストリームをすべて閉じます。
  • *void fabandon(FILE )