C言語でワンライナー

http://alohakun.blog7.fc2.com/blog-entry-460.htmlを見て、これができるということはC言語ワンライナーができるということじゃないですか、と思ってやってみました。要cygwin

$ echo "main(){printf(\"hello 1 liner.\");}" | gcc -xc -; ./a.exe
hello 1 liner.

このくらいでは面白くない気がしたので、標準入力を受け取って、出力するようなものを。

$ cat data.txt 
1
22
333
4444
55555
end

$ (echo "#include <stdio.h>"; echo "main(){int c;while((c=getchar())!=EOF)printf(\"%c\",c);}") | gcc -xc -; cat data.txt | ./a.exe
1
22
333
4444
55555
end