Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell Ptr字8到ByteString_Haskell_Ffi_Bytestring - Fatal编程技术网

Haskell Ptr字8到ByteString

Haskell Ptr字8到ByteString,haskell,ffi,bytestring,Haskell,Ffi,Bytestring,我有一个FFI呼叫返回一些数据字节(不是CString)。 目前,我正在使用类似以下内容: import qualified Data.ByteString as BS BS.pack <$> mapM (peekElem ptr) [0 .. n - 1] (我确实先检查了胡格尔。) 可能我使用了错误的类型来表示“原始字节将被二进制文件消耗。稍后获取或其他解码包”似乎您希望避免CString,因为(我认为非常好)它们以空结尾。更具原则性的CStringLen没有这个弱点,因此应

我有一个FFI呼叫返回一些数据字节(不是
CString
)。 目前,我正在使用类似以下内容:

import qualified Data.ByteString as BS

BS.pack <$> mapM (peekElem ptr) [0 .. n - 1]
(我确实先检查了胡格尔。)


可能我使用了错误的类型来表示“原始字节将被
二进制文件消耗。稍后获取
或其他解码包”

似乎您希望避免
CString
,因为(我认为非常好)它们以空结尾。更具原则性的
CStringLen
没有这个弱点,因此应该适合您的任务。

我想这正是我想要的。你能加上这个作为答案吗?字节是字节。(我认为字符串以null结尾,但packCStringLen允许我使用out。
ptrToBs :: Ptr Word8 -> Int -> IO ByteString
ptrToBs buf n = ... -- totally fine if it makes a copy of the buffer