Most Erratic Behavior

もっとも不安定な挙動

受賞者:Jens Schweikhardt

引用元:https://www.ioccc.org/1998/schweikh2/schweikh2.orig.c

審査員・作者による説明:https://www.ioccc.org/1998/schweikh2/index.html

動作

0と1の乱数列をゆっくりと表示する。

$ gcc -trigraphs -o schweikh2 schweikh2.c

$ ./schweikh2 32
00000010011101101111000001101011

解説

1秒のアラームシグナルをセットして、無限ループで変数をカウントアップしていき、シグナルが届いたタイミングでのカウンタの偶奇を0か1として出力するとのこと。 シグナルハンドラにmain関数をセットしているのが面白い。

元コードは??=line 10 ONE(O(1,1,2,6,0,6))で、これは#line "01\012"なんだけれど、当時のコンパイラでも動かなかったらしく、審査員によって#line "01\015"と変えられている。 しかし、これを現代のgccで実行するとinternal compiler errorになったので、元通りに#line "01\012"にしておいた。

パッチ

パッチをダウンロード