C言語の基礎 |
4-5 ファイル入出力関数
(1) fopen
#include <stdio.h>モードmodeには次の種類がある。
FILE *fopen(char *fname, char *mode);
fnameが示す文字列のファイルをモードmodeにしたがってオープンする。 返却値は、オープンしたファイルの番号(FILE型のデータ)。ファイルがオープンできなければNULL。
"r" | テキストファイルの読み込み | "rb" | バイナリファイルの読み込み | |
"r+" | テキストファイルの読み書き | "rb+" | バイナリファイルの読み書き | |
"w" | テキストファイルの書き込み | "wb" | バイナリファイルの書き込み | |
"w+" | テキストファイルの読み書き | "wb+" | バイナリファイルの読み書き | |
"a" | テキストファイルの追加書き込み | "ab" | バイナリファイルの追加書き込み | |
"a+" | テキストファイルの読み書き | "ab+" | バイナリファイルの読み書き |
(2) fclose
#include <stdio.h>ディスプレイ(標準出力)、キーボード(標準入力)はあらかじめオープンされており、ファイルstdio.hのなかで、stdout, stdinとして定義されている。
int fclose(FILE *fp);
fopenでオープンしたファイルfpをクローズする。
返却値は、クローズに成功したとき、0。失敗したとき、EOF。
(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 |