ファイルを開く

fopen、_wfopen

【書式】

FILE *fopen(
   const char *filename,
   const char *mode
);
FILE *_wfopen(
   const wchar_t *filename,
   const wchar_t *mode
);

【引数】

filename ファイル名
mode アクセス許可の種類。設定できる種類は「mode 文字列」を参照してください。
mode文字列には、ファイルに対して要求するアクセスモードを指定します。
modeオプションの c、n、t は fopenと_fdopenの Microsoft固有の拡張です。ANSI互換が必要な場合は使用しないようにしましょう。

【戻り値】

成功時 開いているファイルへのポインタ
失敗時 NULL のポインタ値

【機能】

fopen関数は、filenameで指定されたファイルを開きます。ワイド文字を扱う場合は、 fopenではなく _wfopenを使用します。_wfopen の場合、引数にはワイド文字列を指定します。 引数の指定以外では、_wfopenと fopenの動作は同じです。

【インクルードファイル】

fopen関数関数 stdio.h
_wfopen関数関数 stdio.h または wchar.h

【必要追加ライブラリ】

なし

使用例

〈サンプルプログラム〉

#include <stdio.h>

FILE *stream, *stream2;

int main(void)
{
   int numclosed;

   /* 読み込みモードでファイルをオープンします
      (ファイル「crt_fopen.txt」が存在していない場合は、失敗します) */
    if(NULL == (stream  = fopen( "crt_fopen.txt", "r")))
    {
        printf("「crt_fopen.txt」を開けませんでした\n");
    }
    else
    {
        printf("「crt_fopen.txt」を開きました\n");
    }

   /* 書き込みモードでファイルを開きます */
    if(NULL == (stream2 = fopen("data2", "w+")))
    {
        printf("「data2」を開けませんでした\n");
    }
    else
    {
        printf("「data2」を開きました\n");
    }

   /* ファイルを閉じます */
    if(fclose(stream))
    {
        printf("「crt_fopen.txt」を閉じられませんでした\n");
    }

   /* 他の全てのファイルを閉じます: */
   numclosed = _fcloseall( );
   printf("_fcloseallによって閉じられたファイルの数: %u\n", numclosed);

    return 0;
}

〈出力〉

「crt_fopen.c」を開きました
「data2」を開きました
_fcloseallによって閉じられたファイルの数: 1