base-4.7.0.0: Basic libraries

Copyright(c) The University of Glasgow, 2008-2011
Licensesee libraries/base/LICENSE
Maintainerlibraries@haskell.org
Stabilityinternal
Portabilitynon-portable
Safe HaskellTrustworthy
LanguageHaskell2010

GHC.Foreign

Contents

Description

Foreign marshalling support for CStrings with configurable encodings

Synopsis

C strings with a configurable encoding

peekCStringTextEncoding → CString → IO String Source

Marshal a NUL terminated C string into a Haskell string.

peekCStringLenTextEncoding → CStringLen → IO String Source

Marshal a C string with explicit length into a Haskell string.

newCStringTextEncodingStringIO CString Source

Marshal a Haskell string into a NUL terminated C string.

  • the Haskell string may not contain any NUL characters
  • new storage is allocated for the C string and must be explicitly freed using free or finalizerFree.

newCStringLenTextEncodingStringIO CStringLen Source

Marshal a Haskell string into a C string (ie, character array) with explicit length information.

  • new storage is allocated for the C string and must be explicitly freed using free or finalizerFree.

withCStringTextEncodingString → (CString → IO a) → IO a Source

Marshal a Haskell string into a NUL terminated C string using temporary storage.

  • the Haskell string may not contain any NUL characters
  • the memory is freed when the subcomputation terminates (either normally or via an exception), so the pointer to the temporary storage must not be used after this.

withCStringLenTextEncodingString → (CStringLen → IO a) → IO a Source

Marshal a Haskell string into a C string (ie, character array) in temporary storage, with explicit length information.

  • the memory is freed when the subcomputation terminates (either normally or via an exception), so the pointer to the temporary storage must not be used after this.

charIsRepresentableTextEncodingCharIO Bool Source

Determines whether a character can be accurately encoded in a CString.

Pretty much anyone who uses this function is in a state of sin because whether or not a character is encodable will, in general, depend on the context in which it occurs.