Spec-Zone.ru › Haskell 9

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API