C言語の基礎
前へ 目次へ 次へ 

4-5 ファイル入出力関数

(1) fopen

#include <stdio.h>
FILE *fopen(char *fname, char *mode);
 
 fnameが示す文字列のファイルをモードmodeにしたがってオープンする。  返却値は、オープンしたファイルの番号(FILE型のデータ)。ファイルがオープンできなければNULL。
 モードmodeには次の種類がある。
"r" テキストファイルの読み込み "rb" バイナリファイルの読み込み
"r+" テキストファイルの読み書き "rb+" バイナリファイルの読み書き
"w" テキストファイルの書き込み "wb" バイナリファイルの書き込み
"w+" テキストファイルの読み書き "wb+" バイナリファイルの読み書き
"a" テキストファイルの追加書き込み "ab" バイナリファイルの追加書き込み
"a+" テキストファイルの読み書き "ab+" バイナリファイルの読み書き

(2) fclose

#include <stdio.h>
int fclose(FILE *fp);
 
 fopenでオープンしたファイルfpをクローズする。
 返却値は、クローズに成功したとき、0。失敗したとき、EOF。
 ディスプレイ(標準出力)、キーボード(標準入力)はあらかじめオープンされており、ファイルstdio.hのなかで、stdout, stdinとして定義されている。

(3) fprintf

#include <stdio.h>
int fprintf(FILE *fp, char *fmt,...);
 
 ファイルfpに対して、printfと同じ処理をする。
 返却値は、出力した文字数。エラーの場合は負数。

(4) fputs

#include <stdio.h>
int fputs(char *buff, FILE *fp);
 
 ファイルfpに対して、putsと同じ処理をする。
 返却値は、0。エラーの場合は、EOF。

(5) fgets

#include <stdio.h>
char *fgets(char *buff, int n, FILE *fp);
 
 ファイルfpに対して、getsと同じ処理をする。
 返却値は、バッファbuffの先頭アドレス。ファイルのデータがなくなったときは、0。

・ファイルtestの内容を表示する。

/* sample37.c */
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *fp;
    char buff[256];
    if((fp = fopen("test", "r")) == NULL){
        puts("can not open");
        exit(0);        /* 強制終了 */
    }
    while(fgets(buff, 256, fp))
        fprintf(stdout, "%s", buff);
    fclose(fp);
}

 ファイルtestはあらかじめ用意しておく必要がある。内容はテキストであれば何でも良い。


4-6 その他

(1) exit

#include <stdlib.h>
void exit(int stat);
 
 オープンされているファイルをすべてクローズしてからプログラムの実行を終了する。データstatの値がオペレーティングシステムに渡される。
 返却値は、ない。

(2) malloc

#include <stdlib.h>
void *malloc(int size);
 
 sizeバイト分の領域をメモリ上に確保する。
 返却値は、確保した領域の先頭アドレス。確保に失敗したときは、0。

(3) free

#include <stdlib.h>
void free(void *pt);
 
 mallocで確保した領域を解放する。
 返却値は、ない。


前へ 目次へ 次へ 
Copyright © 2001-2003 Hiroshi Masuda 

 

 

inserted by FC2 system