Foreign.ForeignPtr.Unsafe
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | ffi@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимая |
| Безопасный Haskell | Небезопасный |
| Язык | Haskell2010 |
Содержание
Описание
Тип и операции ForeignPtr. Этот модуль является частью интерфейса взаимодействия с внешними функциями (FFI) и обычно импортируется через модуль Foreign.
Только небезопасный API.
Небезопасные низкоуровневые операции
unsafeForeignPtrToPtr :: ForeignPtr a -> Ptr a Исходный код
Эта функция извлекает компонент указателя из внешнего указателя. Это потенциально опасная операция, так как если аргумент к unsafeForeignPtrToPtr является последним использованием данного внешнего указателя, то его финализатор(ы) будут выполнены, что потенциально делает полученный обычный указатель недействительным. Поэтому, touchForeignPtr должен использоваться всякий раз, когда нужно гарантировать, что указатель существует — т.е., имеет другое использование.
Чтобы избежать тонких ошибок в коде, написанный вручную код обработки данных предпочтительно должен использовать withForeignPtr вместо комбинаций unsafeForeignPtrToPtr и touchForeignPtr. Однако, последние процедуры иногда предпочтительнее в автоматически сгенерированном коде обработки данных.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Foreign-ForeignPtr-Unsafe.html