我有c-string样式array if_name defined:
(define-cstruct _ifreq ([ifr_name (_array _byte IFNAMSIZE)]
;; ommited ...
))
我可以通过(array->ref
)访问单个元素,并通过递归创建列表。然后使用(list->bytes
)获取lisp数据结构。我很好奇是否有更简单的方法而不需要创建列表。
答案 0 :(得分:1)
Racket带有可变字节字符串,适合这种场合!
(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*))