こんにちは、クボタです。

99/10/07 13:13, matz / netlab.co.jp (Yukihiro Matsumoto)  wrote:
> In message "[ruby-list:17486] Re: C のデータを Ruby  から参照したい"
>     on 99/10/07, kkubota / 18software.co.jp <kkubota / 18software.co.jp> writ
> es:
> |
> |今回の質問は、Cで自作のSCSIドライバから受けたデータ(char 型の配列)
> |を ruby に渡す方法を検討していて、このような方法を思い付き、テストプログ
> |ラムを作成してみました。(テストプログラムはVALUE型配列でしたけど)
> |しかし、この方法では各要素をINT2FIX()で変換する必要があるので、処理
> |的に重いような気がします。(char の配列は16kbyteです)
>
> INT2FIX()はかなり軽い操作です。特に定数に対するものはコンパ
> イル時に処理されるでしょう。
>
> |char 型の配列を ruby に渡す場合、どのような方法があるんでしょうか。
> |ご指導お願いします。
>
> rb_str_new()またはrb_str_new2()で文字列にしちゃうのが一番簡
> 単では?

ここで扱っている char 型配列のバッファにはバイナリデータが入って来ますので
文字列に変換できないコードがあります。
なのでrb_str_new() は使えないみたいです。

INT2FIX() が軽い操作という事なので、16kbyteのデータを1byteずつ変換して
みようと思います。

ご指導ありがとうございました。