プログラム行数カウンターを作る#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ドライブに作業環境を移動した。
プログラム行数カウンターを作る#1
前回の投稿から1週間が経過しました。
実はあの後、急遽地元に帰省。(5連休になったものの、ソースコード1行すら書けず...。)
場所を選ばず作業できるように、ノートPCが欲しくなりました。
さて、本題。プログラム行数カウンターを作る。
いつ、どのくらいの行数のプログラム書いたか、記録として残したい。
モチベーションはそんなところ。
ひとまず、ざっくりな画を描いてみた。
【プログラム行数カウンターでやりたいこと】
【インプット】
- プログラムファイル
- 記録用CSVファイル
【アウトプット】
- 記録用CSVファイル (インプットのものと同一ファイル)
【記録用CSVファイルに記載する情報】
- プログラムの行数
- プログラミング言語
- 日付 (プログラム行数カウンターを実行した日)
今回は、C言語で実装する。
【プログラム行数カウンターでやりたいこと】をする上で、下記2点は発生する。
- 指定したファイルの読み込み
- 指定したファイルへの書き込み
なので、まずは fopen / fclose を復習。
一応、動く。
ただし、ブログを書いている途中にfcloseのことで気づいた点が一つ。
これでは、fcloseが異常終了時(戻り値:EOF)の処理がない。
なので、次回の更新までに直す。
今日はここまで。
【余談】
なぜ、急にプログラム行数カウンターを作ろうと思ったのか。
先日、恩人に今までの感謝を伝えたとき、次のような返事をいただいた。
君からの感謝の言葉よりも、
君が書いた10万行のプログラムを見せてもらった方が、私は嬉しい。
君が、エンジニアとして生きたい、という前提があっての話だけれども。
アウトプットが少なすぎる私は、
累計であっても、プログラムのソースコードを10万行も書いたことはない。
しばらくして、一つの結論を出した。
プログラムの行数を数えるプログラムを書こう。
いきなり私が10万行のプログラムを書くことは無理な話。
ただ、プログラムを書くことを続けていけば、
ソースコード累計10万行を書くことは、いつか達成できる。そう思えた。
いつか、累計10万行は書いた、と証明したい。
そのために、いつどのくらい書いていたかを記録として残したくなった。
記録を残すために、プログラム行数カウンターを作ろうと思えた。
ブログ、はじめます
恩人が会社を退職することを知った。
突然の出来事に、驚きが隠せなかった。号泣した。
その日の夕方、久しぶりに、1対1で会話させていただいた。
恩人から見て、相も変わらず、
私はエンジニアとして勉強量が少ないことを指摘いただいた。
[ 勉強量=インプット+アウトプット ]
私はアウトプットが足らなさすぎる。
なので、
ブログを開設して、少しでもアウトプットを増やそうと考えた。
このブログは、
私がインプットした技術的な話をアウトプットしていく場にします。