2014年9月30日火曜日

getopt による引数の解釈

getopt により引数を解釈します。
getopt_long 関数を利用することにより、長いオプション (2 つのダッシュ "--" で始まるオプション) を受け付け、オプションに関係ない引数も受け付けるようにしています(non-option arg: として表示される)。 実行結果

2014年9月7日日曜日

行数を指定してファイルを逆順に取得

行数を指定してファイルを逆順に読み取り、その結果を取得し表示する例題です。

逆順に取得する方法は従来であれば、
・ファイルの内容を一行ずつ読み取る
・その結果を配列として保存
・配列の結果を逆から取得する
という手順となります。

その際、確保するメモリの量が行数分+最終的な結果の分となるためメモリの確保に困りますが、以下の例題では一時的に確保するメモリの代わりにファイルポインタの位置、行の長さのメモリだけを確保するようにしています。 その結果、一時的に確保するメモリの量が格段に少なくなります。

行数を指定できるため、最後から何行分の結果が必要と言う際に利用できます。 実行結果