C言語 ファイルを開く - stdio.h - [ fopen ]

2008.09.16 Tuesday | by LRESULT


回はstdio.hで宣言されている、fopen()関数を使用して

ファイルを開くところから試してみたいと思います。


fopen
書式 FILE *fopen( const char *filename, const char *mode )
機能 ファイルを開く
引数 const char *filename : 開くファイル名を指定
const char *mode : ファイルオープンのモード
戻り値 成功すると、ファイル(ストリーム)のポインタを返し、
失敗すると、NULLを返します



FILE構造体
宣言 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が返ります。

カテゴリ:C言語 stdio.h | 21:50 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

トラックバック機能は終了しました。

トラックバック