ioctlメソッドはRubyのメソッドとしては奇妙
RubyのioctlはCのioctlの考えをそのまま持ってきているので
ioctlとしては普通だけど、Rubyのメソッドとして奇妙。
ret = "" fd = open("/dev/dsp","r") fd.ioctl(SoundCard::Param[:SOUND_PCM_READ_RATE],ret)
結果を返す専用の変数を渡しておくと(上記で言うとret)
変数が指しているオブジェクトが書き換わっているので
ret.unpack("s")[0]
とすると所望の値が得られる。
C言語では基本、戻り値が1つなのでこのようなインタフェースが多いけど
Rubyでこういうメソッドは珍しい。
っていうかメソッドチェーンできないので面倒くさいよ。
参考
instance method IO#ioctl
http://doc.loveruby.net/refm/api/view/method/IO/i/ioctl