私はエンジニアでありたい

インプットしたら、アウトプット

プログラム行数カウンターを作る#2

前回、fcloseの異常終了時(戻り値:EOF)の処理がないことに気づき、

次回までに直すことを最後に書いていたので、まずはそこから。

fcloseの異常終了時の処理を追加

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ドライブに作業環境を移動した。