Last Update 2012/07/05
ファイルを開きます。
戻り値1 = fopen( 引数1 , 引数2 )
戻り値1 :
FILE *
実行が成功した場合
開いたファイルのファイル・ポインタ
エラーが発生した場合
NULL
引数1 :
char *
ファイル名
引数2 :
char *
モードを指定する文字列
「r」
読み込み用
実行時の現在位置はファイルの先頭
実行時の現在位置はファイルの先頭
「r+」
読み書き用
実行時の現在位置はファイルの先頭
実行時の現在位置はファイルの先頭
「w」
書き込み用
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ0に切り捨て
実行時の現在位置はファイルの先頭
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ0に切り捨て
実行時の現在位置はファイルの先頭
「w+」
読み書き用
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ0に切り捨て
実行時の現在位置はファイルの先頭
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ0に切り捨て
実行時の現在位置はファイルの先頭
「a」
書き込み用
ファイルが存在しない場合はファイルを作成
実行時の現在位置はファイルの末尾
ファイルが存在しない場合はファイルを作成
実行時の現在位置はファイルの末尾
「a+」
読み書き用
ファイルが存在しない場合はファイルを作成
実行時の現在位置はファイルの末尾
ファイルが存在しない場合はファイルを作成
実行時の現在位置はファイルの末尾
(例)
#include <stdio.h>
int main ()
{
char s[20] = "123456789";
char *sp;
int nret;
FILE *fp;
fp = fopen("test_fopen_w.txt", "w");
nret = fputs(s, fp);
printf("実行結果「w」 : %d\n", nret);
fclose(fp);
fp = fopen("test_fopen_w.txt", "r");
sp = fgets(s, 10, fp);
printf("実行結果「r」 : %s\n", sp);
fclose(fp);
fp = fopen("test_fopen_w.txt", "r+");
sp = fgets(s, 10, fp);
printf("実行結果「r+(読み込み)」 : %s\n", sp);
nret = fputs("0123", fp);
printf("実行結果「r+(書き込み)」 : %d\n", nret);
fclose(fp);
fp = fopen("test_fopen_w.txt", "w+");
sp = fgets(s, 10, fp);
printf("実行結果「w+(既存ファイル有り)」 : %s\n", sp);
nret = fputs(s, fp);
printf("実行結果「w+」 : %d\n", nret);
fclose(fp);
fp = fopen("test_fopen_w.txt", "a");
nret = fputs("abc", fp);
printf("実行結果「a」 : %d\n", nret);
fclose(fp);
fp = fopen("test_fopen_w.txt", "a+");
sp = fgets(s, 20, fp);
printf("実行結果「a+(読み込み)」 : %s\n", sp);
nret = fputs("0123", fp);
printf("実行結果「a+(書き込み)」 : %d\n", nret);
fclose(fp);
fp = fopen("test_fopen_w.txt", "r");
sp = fgets(s, 20, fp);
printf("実行結果「a+」 : %s\n", sp);
fclose(fp);
return 0;
}
実行結果
実行結果「w」 : 9
実行結果「r」 : 123456789
実行結果「r+(読み込み)」 : 123456789
実行結果「r+(書き込み)」 : 4
実行結果「w+(既存ファイル有り)」 : (null)
実行結果「w+」 : 9
実行結果「a」 : 3
実行結果「a+(読み込み)」 : (null)
実行結果「a+(書き込み)」 : 4
実行結果「a+」 : 123456789abc0123