プログラム行数カウンターを作る#2
前回、fcloseの異常終了時(戻り値:EOF)の処理がないことに気づき、
次回までに直すことを最後に書いていたので、まずはそこから。
fcloseは、異常終了時に戻り値としてEOF(-1)を返す。
なので、今回は初期値にEOFを持つfcloseCheckという変数を用意し、
fcloseの成功か失敗かをfcloseCheckの最終的な値で判定するようにした。
(fcloseが成功すれば、fcloseCheckには「0」が代入される。)
ひとまず、fcloseの異常終了時の処理についてはこれで終了。
一応これで、プログラム行数カウンター内で指定したファイルの
ファイルオープン/ファイルクローズはできるようになった。
ただ、
毎回プログラム行数カウンターのソースコードを開いて、
行数カウントするプログラムを指定するのはあまりにも非効率。
なので、次のように変更した。
主な変更点としては、
- main(void)をmain( int argc, char argv[ ] )にした
- コマンドラインから渡されたファイルをstrcpyでfnameにコピーするようにした
コマンドラインからファイル名が指定できるようになったので、利便性は向上した。
予定では、プログラム行数カウンターには、
上記二つがインプットとして入る。
両方のファイルをコマンドラインから渡すかは、検討中。
記録用のCSVファイルは毎回変更されるものではない想定なので、
あらかじめソースコード内で指定しておくのも手かと思った次第。
(char recordFile[FILE_NAME_BUFFER] = "prcRecord.csv" みたいな)
とりあえず、これについては一旦保留。
次回以降からは、
記録用のCSVファイルに記載する情報の処理を一つずつやっていこうと思う。
今日はここまで。
【余談】
Visual Studio Codeのデバッグ機能を使おうとしたら、エラー発生。
調べたところ、ファイルパスに全角文字が含まれていることが原因みたいだった。
なので、ファイルパスに全角文字が含まれないように変更して、無事解決。
具体的には、Dドライブに作業環境を移動した。