Foreign.ForeignPtr.Unsafe
| Авторские права | (c) Университет Глазго 2001 |
|---|---|
| Лицензия | BSD-стиль (см. файл libraries/base/LICENSE) |
| Поддержка | ffi@haskell.org |
| Стабильность | предварительная |
| Переносимость | переносимая |
| Safe 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/9.12.1/docs/libraries/base-4.21.0.0-8e62/Foreign-ForeignPtr-Unsafe.html