(Print Clock)
* このプログラムは無償ですが、何の保証もなければ、補償もありません。あなたがこのプログラムを使用して被ったいかなる不利益についても、作者は一切その責を負いません。各自の責任でご利用ください。
prtclockは時刻を表示します。CTRL+Cを押すか、killされるまで表示しつづけます。
まず、prtclock.txtを表示させて、prtclock.cとしてセーブしてください。Unixマシン上なら改行コードは関係ないと思いますが、ダウンロードをWindowsマシンなどで行う場合はちょっと気にする必要があるかもしれません。Linux・FreeBSDとも、普通にccでコンパイルすればバイナリができあがるはずです。特に依存しているカーネルオプションもないはずです。
cc -Wall -o prtclock prtclock.c
Linux 2.0.34(Slackware 3.5 + PJE 0.15cm)、FreeBSD 3.1で動作の確認がなされています。バイナリができあがったら、/usr/local/binなどにコピーしてください。
以下のように打ち込むだけです。
prtclock
放っておくといつまでも時刻を表示しつづけますので、用が済んだらCTRL+Cで止めてください。
ここでは知らなくてもいいんだけど、知っているとちょっと便利な話を紹介しておきます。
普通ならば適当な方法で秒の頭に同期したら、1秒sleepして再表示、でしょうけど、ここでは精度を追い求め(?)、ただひたすらgettimeofdayを繰り返し、秒の単位が変わったら再表示しています。従って、システムの負荷的には当然不利で、あまり地球に優しいプログラムではありません(笑)。
setbufで標準出力のバッファリングを無効にしています。"\n"で改行していれば何も考えなくてよいのですが、"\r"で行頭に戻しているだけなので、これをやらないとバッファがあふれるまで時刻が表示されないと言う間抜けなことになります。