百日半狂乱

Shut the fuck up and write some code!!

C

0.1 + 0.1 + 0.1 == 0.3 ?

パーフェクトPythonを写経中に0.1 + 0.1 + 0.1について書いてあったのでメモ. Pythonのfloat(浮動小数点数型)は、大抵の場合はCのdouble型を使って実装されており、近代的なコンピュータの場合53ビットの精度らしい. Python $ python Python 2.7.3 (defaul…

世にも恐ろしいSIGPIPE、ソケットプログラミングの落とし穴

前回、「次回もシグナルのことを書く」と書いたのでシグナルのことを書く*1. ソケットプログラミングの落とし穴は色々あるけど、ここでは個人的に嵌ったシグナル関連の落とし穴に関して書き殴る. 結論から書くと、コネクションが切れたソケットに書き込み(s…

POSIX.1「signal(2)は古い、sigaction(2)を使え。」

過去に何回かシグナルに関する話をしたが、今回と次回もシグナルの話にしようと思う. シグナルそのものについてはsignal(7)のmanページを参照する. ここでは、シグナルを捕捉する側の話をする. 主に移植性の問題で、signal(2)ではなくsigaction(2)を使う…