freopen_s

提供: RAD Studio
移動先: 案内検索

stdio.h:インデックス への移動



ヘッダー ファイル

stdio.h

カテゴリ

ファイル アクセス関数

プロトタイプ

errno_t freopen_s(FILE * restrict * restrict newstreamptr, const char * restrict filename, const char * restrict mode, FILE * restrict stream);

説明

freopen の代わりとなるもので、セキュリティ機能が強化されています。

freopen_s は、開かれているストリームを指定ファイルに切り替えます。 正常に開くことができたかどうかにかかわらず、ストリームを閉じます。freopen_s は、stdin、stdout、stderr に関連付けられているファイルを変更する場合に役立ちます。 それには、まず stream パラメータに関連付けられている任意のファイルを閉じた後、filename で指定されたファイルを開き、stream パラメータで指定されたストリームをそのファイルに関連付けます。

ファイルが正常に開かれた場合、そのファイルのファイル ポインタ値が newstreamptr パラメータに設定されます。 そうでない場合、newstreamptr は NULL ポインタになります。

文字列 mode には、freopen の場合と同じ値を同じ意味で指定できます。

アクセス違反が発生した場合、freopen_s はファイルを閉じず、ファイルを開こうともしません。

戻り値

正常に終了した場合、freopen_s はゼロを返し、そうでない場合はゼロでない値を返します。

#include <stdio.h>
int main(void)
{
  /* Redirect stdout */
  FILE *file;
  file = new FILE;
  if (freopen_s(&file,"OUTPUT.FIL", "w", stdout)){
    fprintf(stderr, "error redirecting stdout\n");
    exit(1);
  }
  /* This output will go to a file */
  printf("This will go into a file.");
  /* Close the standard output stream */
  fclose(stdout);
  return 0;
}

移植性

POSIX Win32 ANSI C ANSI C++

freopen_s

+

+

+

+

関連項目