fopen_s のサンプルコード | ファイルを開き、1行ごとに出力する


ファイルを開き、1行ごと読み込み、そのまま標準出力に出力するサンプルコードです。

fopen_s により c:\temp\test.txt を読み込んでいます。読み込みに失敗すると、関数は 0 を戻します。
読み込みバッファは256を指定しています。1行が256を超えるとアクセス違反が発生します。そのようなファイルを開く場合にはプログラムの修正が必要です。
fopen 関数には脆弱性があり、この関数を使用すると以下の警告が出力されます。代わりにfopen_sを使用することが推奨されています。


(*)warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details

スポンサーリンク

Visual C++ 向けサンプルコード

#include <stdio.h>
#include <stdlib.h>

int main() 
{
FILE *fp;
char file_read_buffer[256];
//ファイルを読み込み専用で開く
if ((fopen_s(&fp,"c:\\temp\\test.txt", "r")) != 0)
{
printf("ファイルのオープンに失敗しました。\n");
return 1;
}
//ファイルを1行ごと読み込み、標準出力に出力する
while (fgets(file_read_buffer, 256, fp) != NULL )
{
printf("%s", file_read_buffer);
}
fclose(fp);
return 0; }

スポンサーリンク



[Visual C++ サンプルコード | 即戦力ソース集に戻る]

本サンプルコードではエラー処理を省略している場合があります。実践で使用する場合はエラー処理が必要となる場合があります。