先日の話である。screenを使っていてメインのウィンドウ以外でmakeなどの時間のかかる作業をしているときに、それの終了がわかるようにアラートをならす(screenには別のウィンドウでアラートがなると報告してくれる機能がある)プログラムを書いた。といってもただ\aを出力するだけのものだ。バイナリ化したかったのでCで書いた。以下のコードである。
puts("Process has completed.\a");
しかしなぜかコンパイルが通らない。Cでしばらく書いてなかったので何か間違ったかなとマニュアルを眺める。しかしputs関数の書き方に間違いはなさそうである。ちゃんと';"もつけた。しばらく悩む。そして思い出す。
int main(){ puts("Process has completed.\a"); return 0; }
main関数を書いてなかった!Ruby怖い!