読者です 読者をやめる 読者になる 読者になる

merge sort

C

あまりに最近Cを書いてないので適当にマージソートでも書いてみたら、やはりスラスラかけなかった件について。

System V 共有メモリ

仕事で使っているPostgreSQLでは、どうやらshmgetしているみたいなので、久しぶりにサンプル書きつつLinuxでの挙動を見てみた。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> #include <fcntl.h> const int shm_size = 256 * 1024 * 1024;</fcntl.h></sys/shm.h></sys/ipc.h></sys/types.h></unistd.h></string.h></stdlib.h></stdio.h>…

CDROMドライブのeject

会社にLinuxカーネル徹底理解 (日経BPパソコンベストムック)作者: 日経Linux出版社/メーカー: 日経BP社発売日: 2007/07/19メディア: 雑誌購入: 1人 クリック: 47回この商品を含むブログ (30件) を見るという本があったので年末年始の暇つぶしに借りて読んで…

久しぶりにCで「どう書く」を

C

勢いだけでCでも書いてみた。コンテキスト切り替え版。 どう書く?org久しぶりにCを書いたら、配列の要素の記法が[]ではなく{}なことに少し驚いた…

のっかりフィボナッチベンチ

恒例のフィボナッチベンチで V8 と Smalltalk、Ruby、Python、Scheme とを戦わせてみる - Smalltalkのtは小文字ですを見て、お手軽なのでなじみの言語で試してみることに。スペックがしょぼしょぼなので軽めで。 Ruby def fib(n) n < 2 ? n : fib(n - 1) + f…

read()とfread()が呼ばれてからの流れ

C

ひょんなことからread()とfread()が呼ばれてからシステムコールにたどり着くまでを追ってみたので、メモがてらここに書いておきます。 FreeBSD 6.3-STABLE のソースをざっと追ってみたところ、 fread() からの関数コールトレース(下記参照)では__sys_read() …

makecontext()でマルチタスクっぽく

つい最近まで知らなかったのですが、プログラムのコンテキスト操作用に getcontext(), setcontext(), makecontext(), swapcontext() というCの関数があるそうです(@ucontext.h)。面白そうだったので遊んでみました。getcontext(), setcontext() はコンテキ…