2013-01-01から1年間の記事一覧
目的 ある領域がmmapされているか(アクセスしてもSEGVが起きないか)を、ユーザ空間からチェックしたい。 mincoreシステムコール(ある領域にDDRが割り当てられているかをチェックする)を使って実現できないか? 結果 mmapの有無は、以下のロジックで判定…
疑問: なぜ "ruby -e 'p(v=v)'" が NameError にならないのか? Rubyのレキシカルスコープのすごさを同僚に説明している中で気づいた。 % ruby -e 'p v' -e:1: undefined local variable or method `v' for main:Object (NameError) % ruby -e 'p (v=v)' nil…
目的 組込み用途などで、footprintが小さいprintf関数が欲しい。 ライセンスを気にしなくて良いように、縛りがゆるいものが良い。 結果 printf()の仕様の勉強を兼ねて、自作した。パブリックドメインにするので、扱いはなんでも可。 サイズ縮小のために、一…
目的 BINARY HACKS "HACK #26, glibcを使わないで Hello World を書く" のARM版を作りたい。 できるならサイズはとことん削りたい。 結果 ARM命令版で174バイト、Thumb-2命令版で154バイトの Hello World を作った。ポイントは以下: system call を直接呼出…
目的 Linux上のプロセスの同期待合せ処理として、処理がシンプルなFIFO(名前付きパイプ)を使いたい。 やりたいことは、μuITRONのイベントフラグ相当の処理。 外部仕様を書くと、 書込み側はいつでも書き込め、読み出し側のopenを待たずに次の処理を続ける …
目的 組込み用途などで、footprintが小さいprintf関数が欲しい。 ライセンスを気にしなくて良いように、縛りがゆるいものが良い。 結果 printf()の仕様の勉強を兼ねて、自作した。パブリックドメインにするので、扱いはなんでも可。 サイズ縮小のために、一…