kenpi20の灰色マインドマップ日記

都内で暮らす会社員のライフログ、現状把握、自己分析

【C++初心者日記】 「fopen」と「fopen_s」(古いサンプルプログラムがエラーを吐く一因)


どうも、まだ研究室です。

C++を書いていて日記どころではありません。

 

購入したとある装置のサンプルプログラムを見ると、

関数「fopen」なんて平気で書いてあって、最近の開発環境を使ってビルドするとエラーを吐きます。
要は「セキュリティ強化版の関数fopen_sを使えよ」ってことらしいのですが、
引数なんかも変わっていて、ただ「_s」を付け加えるだけじゃだめでした。

 

具体的な解決策は以下サイト参照。すばらしい記事です。

ぷろぐらむめも : fopen_sとかsscanf_sとかの"_s"関数書き換え例まとめ

 

上記サイトでは他に「sscanf」「strcpy」の対策も書かれていますね。

そこに書かれていないものとして、「getch」もエラーを吐きました。

が、「getch」は単に「_getch」に書き換えるだけで収まりました。

 

こんな問題は、熟練者には数分で解決できるのかもしれませんが、初心者の僕はこれだけで数時間かかり……脳みそが(悪い意味で)とろけそう。

 

にしても、サンプルプログラムがそもそもエラー吐いたときの絶望感(というか不安感)はやばいですね。ほとほと疲れました。

そういう場合は、とりあえず環境の不備と、今回のような年経過による関数の変更を疑ってみるといいかもしれません。


ほかにも問題山済みのまま、とりあえず終電なので帰宅します。はあ、疲れた。