こんにちは。岡部@東京都立大学と申します。
最近Linux上のrubyからGPIBが使えるようにruby用nigpibモジュールを作っています。
そこでバイナリ配列(?)を配列のままrubyに渡してrubyスクリプトで処理をしようと
思っているのですが、

  unsigned char ret[13000]; /* ここに測定器からのデータが入ります */
  float rdata;
  scanf(ret, "%f", &rdata);
  printf("rdata = %f\n", rdata);

ではfloatな値を正常に表示できるのですが、
C側で

  long number; /* char配列の長さ */
  return rb_str_new(ret, number);

し、ruby側で

  r = Nigpib.readn(handle, 100) # 先程のrubyバイナリ列をrに
  print("rdata = ", r.unpack('f'), "\n")

してもfloatな値を読めません。
このような場合どのようにしてバイナリ列をCからrubyに渡すべきなのでしょうか?

よろしくお願いします。

-- 
Tokyo Metropolitan University     Kiwamu Okabe
 Mail: kiwamu / debian.or.jp
 URL:  http://silica.eei.metro-u.ac.jp/~kiwamu/