2010-09-11 47 views
1

我正在使用USB綁定的紅寶石的小腳本。因爲這只是libusb的一個包裝,所有C++的特性都可以通過抽象來看到,例如當usb_bulk_read需要給出一個緩衝區作爲參數時(這只是C中的一個指針)。紅寶石等價物的c緩衝區

如何創建一個長度爲64字節的緩衝區,用於下面的代碼位,而不必創建一個64位的字符串編碼到程序中(我正在使用ATM)。我希望紅寶石有這個指針!

data = "   "; /#etc. You get the idea 
handle.usb_bulk_read(1, data, 0) 

其中句柄是已經打開的USB :: DevHandle對象。

回答

1

答案很簡單,可能避免的核心問題:

data = ' ' * 64 
+0

這樣的作品,謝謝。但如果這只是核心問題,其他問題是什麼? – 2010-09-11 22:12:03

+1

@Ali但是你仍然在使用64個空格的字符串,就像你將它們全部硬編碼到源代碼中一樣。不過,這可能是您在Ruby中獲得相同效果的唯一方法。 – 2010-09-11 22:15:09

+0

這是可以接受的,因爲該設備被編碼爲以64byte塊發送,並且無論如何,在c中執行操作將具有相同的限制。 – 2010-09-11 22:22:37