アルゴリズムの勉強用にC言語で1行読み込みを作ってみたけど、Rubyの方がずっと早かったorz。原因は、mallocの回数とioのバッファリングにあるような気がして今日はずっとRubyのio.cを眺めてた。ま、よくわからんのでwebを探索。 ・・・素敵なライブラリを発見してしまった。 Manpage of GETLINE なんと、C++のgetlineがC言語にも!! getline() は stream から 1 行全てを読み込み、テキストが含まれているバッファのアドレスを *lineptr に格納する。 "1行全てを読み込み" !! C言語でちゃんと1行読み取るのは結構しんどい。なぜなら、C言語の配列は固定幅だからだ。可変長な文字列を作るためにはmallocして、1文字づつ読んで改行を探して、領域がたりなくなったら、reallocしながら配列を広げるしかない。速度的にもチューンが欠かせ