2017-04-09 8 views
0

私は、c-文字列のスタイルarrayのif_nameが定義されている:は直接

(define-cstruct _ifreq ([ifr_name (_array _byte IFNAMSIZE)] 
        ;; ommited ... 
        )) 

私はそれからリストを作成する(array->ref)によって、個々の要素にアクセスし、再帰経由することができます。次に、(list->bytes)を使用して、lispデータ構造を取得します。リストの作成を必要とせずに簡単な方法があれば私は興味があります。

答えて

1

ラケットには、このような場合に変更可能なバイト文字列が付属しています!

(require ffi/unsafe) 

(define (byte-array->bytes array) 
    (let* ([len (array-length array)] 
     [byte* (make-bytes len)]) 
    (for ([i (in-range len)]) 
     (bytes-set! byte* i (array-ref array i))) 
    byte*))