Loose-Info.com
Last Update 2012/07/05
TOP - C言語 - stdio.h - fopen()

ファイルを開きます。

 戻り値1  = fopen(  引数1  ,  引数2  )

戻り値1 :
FILE *
実行が成功した場合
開いたファイルのファイル・ポインタ
エラーが発生した場合
NULL
引数1 :
char *
ファイル名
引数2 :
char *
モードを指定する文字列

「r」
読み込み用
実行時の現在位置はファイルの先頭
「r+」
読み書き用
実行時の現在位置はファイルの先頭
「w」
書き込み用
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ0に切り捨て
実行時の現在位置はファイルの先頭
「w+」
読み書き用
ファイルが存在しない場合はファイルを作成
ファイルが存在する場合はファイルサイズ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