GHC.Foreign
| Авторские права | (c) Университет Глазго, 2008-2011 |
|---|---|
| Лицензия | см. libraries/base/LICENSE |
| Поддержка | libraries@haskell.org |
| Стабильность | внутренняя |
| Переносимость | непереносимая |
| Безопасный Haskell | Надежный |
| Язык | Haskell2010 |
Содержание
Описание
Поддержка внешней маршализации для CString со настраиваемыми кодировками
Строки C с настраиваемой кодировкой
peekCString :: TextEncoding -> CString -> IO String Исходный код
Маршализация строки C с нулевым завершением в строку Haskell.
peekCStringLen :: TextEncoding -> CStringLen -> IO String Исходный код
Маршализация строки C со явным указанием длины в строку Haskell.
newCString :: TextEncoding -> String -> IO CString Исходный код
Маршализация строки Haskell в строку C с нулевым завершением.
- строка Haskell не должна содержать символы NULL
- новая память выделяется для строки C и должна быть явно освобождена с помощью
freeилиfinalizerFree.
newCStringLen :: TextEncoding -> String -> IO CStringLen Исходный код
Маршализация строки Haskell в строку C (т.е., массив символов) с явным указанием длины.
- новая память выделяется для строки C и должна быть явно освобождена с помощью
freeилиfinalizerFree.
withCString :: TextEncoding -> String -> (CString -> IO a) -> IO a Исходный код
Маршализация строки Haskell в строку C с нулевым завершением, используя временное хранилище.
- строка Haskell не должна содержать символы NULL
- память освобождается при завершении подвычисления (как нормальным завершением, так и исключением), поэтому указатель на временное хранилище не должен использоваться после этого.
withCStringLen :: TextEncoding -> String -> (CStringLen -> IO a) -> IO a Исходный код
Маршализация строки Haskell в строку C (т.е., массив символов) во временном хранилище, с явным указанием длины.
- память освобождается при завершении подвычисления (как нормальным завершением, так и исключением), поэтому указатель на временное хранилище не должен использоваться после этого.
charIsRepresentable :: TextEncoding -> Char -> IO Bool Исходный код
Определяет, может ли символ быть точно закодирован в CString.
Практически любой, кто использует эту функцию, находится в состоянии греха, потому что вопрос о том, может ли символ быть закодирован, вообще зависит от контекста, в котором он встречается.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/GHC-Foreign.html