C言語 ファイルを開く - stdio.h - [ fopen ]
2008.09.16 Tuesday | by LRESULT
今回はstdio.hで宣言されている、fopen()関数を使用して
ファイルを開くところから試してみたいと思います。
書式 | FILE *fopen( const char *filename, const char *mode ) |
---|---|
機能 | ファイルを開く |
引数 | const char *filename : 開くファイル名を指定 const char *mode : ファイルオープンのモード |
戻り値 | 成功すると、ファイル(ストリーム)のポインタを返し、 失敗すると、NULLを返します |
宣言 | typedef struct { unsigned char *curp; unsigned char *buffer; int level; int bsize; unsigned short istemp; unsigned short flags; wchar_t hold; char fd; unsigned char token; }FILE; |
---|---|
機能 | 現在のファイルポインタや、バッファサイズ、ファイルの状態を格納 |
メンバ | unsigned char *curp; /* Current active pointer */ unsigned char *buffer; /* Data transfer buffer */ int level; /* fill/empty level of buffer */ int bsize; /* Buffer size */ unsigned short istemp; /* Temporary file indicator */ unsigned short flags; /* File status flags */ wchar_t hold; /* Ungetc char if no buffer */ char fd; /* File descriptor */ unsigned char token; /* Used for validity checking */ |
※ 上記構造体はC++Builder6の場合です。
※ コンパイラによっては構造体ではない場合があるそうです。
※ ファイルオープンのモードについては、こちら。
まずは、「test.txt」というファイルを読み取りモード[r]で開いて、ファイルを閉じます。 test.txtは、ソースファイルと同じフォルダに置いているものとします。 |
---|
#include <stdio.h> int main(void) { FILE *fp; char *fname = "test.txt"; fp = fopen( fname, "r" ); if( fp == NULL ){ printf( "%sファイルが開けません¥n", fname ); return 0; } else{ printf( "%sファイルを開いた!!¥n", fname ); } fclose( fp ); return 0; } |
test.txtファイルを開いた!! |
---|
と、表示されれば成功です。 ファイルが無かったり、指定フォルダでなければ、FILE変数fp はNULLが返ります。 |