2017-04-09 53 views
0

我有C-字符串裝飾array if_name定義:如何把C的字符數組的字節直接

(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*)) 
相關問題