コピー2018.06.08まだまだ自作tail続きます。前回ファイルを読み込みながら表示してた処理を、今回は、ファイル読み込みと、抽出結果を表示する処理に分離します。ついでにファイル読み込みは、fopen~fgetc~fcloseを、open~read~closeに置き換えます。46fclose(fp);上は、前回のソースです。何も考えずにlenという変数名にしたのですが、短すぎて、何の長さなのか早速分からなくなったので、req_lenという変数名に改名。これでも、分かりにくいです。いつも長さ関係の名前を付けるとき、~lenって名前にするべきか、~sizeって名前にするべきか、悩みます。いつも結論が出ないので、とりあえずの名前で寝かせている始末。上の39行目fopenは、下の47行目openに変更、エラー処理も追加。fseekは、lseekに変更。下のソースになりました。55}さらにバッファ変数bufを用意して、readに対応。readの戻り値は、要求したリードサイズを読み込みできるとは限らないので、this_lenっていう新設の変数に格納して、この値で、バッファポインタbufpを進めます。このようなソースになりました。==>)は、結果表示としてまとまっていた方がよいので、qflagの判定とprintfの2行を、66行目に移動してきました。68行目から71行目は、前回ファイル読み込みしながら表示してた処理を、分離して、バッファの内容を表示するだけの処理として新設。71}ソース全体です。Byte程度のファイルを作成し、確認してみます。Byteのデータができました。