如何有效地“捅”" Ptr上给定长度的ByteString值?

时间:2016-06-24 16:29:42

标签: haskell ffi bytestring

"Peeking",将指针ptr读取到新的ByteString,非常简单:

BS.packCStringLen (ptr, size)

但是poke操作(将ByteString写入给定的内存位置)并不是那么明显。我们有

useAsCStringLen :: ByteString -> (CStringLen -> IO a) -> IO a

所以我们可以做(在copyBytes的帮助下。

BS.useAsCStringLen bs $ \(src, len) -> copyBytes ptr src len

或提高效果unsafeUseAsCStringLen

是否有一个现成的功能可以完成上述工作?

0 个答案:

没有答案