もっとも多用途なソース
受賞者:Jyrki Holopainen
動作・解説にジャンプ »
引用元:https://www.ioccc.org/1993/lmfjyh.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1993/lmfjyh.hint
ファイル名にコードを仕込むことで任意のコードを実行させられるプログラム。
当時のCコンパイラのバグに依存しているので、現代では動かせない。
ひさびさの一発ネタ。
当時のCコンパイラ(gcc 2.3.2やHP-UXやVAXのccなど)は__FILE__のエスケープが漏れていたそうで、ソースファイル名を";main(){...};char*C=".cなどしてこのコードをコンパイルすると
__FILE__
";main(){...};char*C=".c
char*_="";main(){...};char*C="";
となっていたらしい。 ただ、これは明らかにコンパイラのバグなので、gcc 2.3.3で即座に直された模様。 今では適切にエスケープが行われて次のように解釈されるので、残念ながら動かしようがない。
char*_="\";main(){...};char*C=\"";