OpenersNotesSection(Spacer1)Details

WSGetUTF32String() allocates memory for the character string. You must call (NonWLLink[WSReleaseUTF32String(), paclet:ref/c/WSReleaseUTF32String]) to disown this memory. If WSGetUTF32String() fails and the function's return value indicates an error, do not call (NonWLLink[WSReleaseUTF32String(), paclet:ref/c/WSReleaseUTF32String]) on the contents of s.

WSGetUTF32String() returns immutable data.

WSGetUTF32String() stores all characters directly in the UTF-32 encoding form.

The string s returned by WSGetUTF32String() begins with a byte order mark.

The length of the string len includes the byte order mark.

WSGetUTF32String() returns 0 in the event of an error, and a nonzero value if the function succeeds.

Use (NonWLLink[WSError(), paclet:ref/c/WSError]) to retrieve the error code if WSGetUTF32String() fails.

WSGetUTF32String() is declared in the WSTP header file (RefLink[wstp.h, paclet:ref/file/wstp.h]).

OpenersPrimaryExamplesSection(Spacer1)Examples  (1)

OpenersExampleSection0(Spacer1)Basic Examples  (1)

#include "wstp.h"

/* read a UTF-32 encoded string from a link */

void f(WSLINK lp)
{
	const unsigned int *string;
	int len;

	if(! WSGetUTF32String(lp, &string, &len))
		{
			/* unable to read the UTF-32 string from lp */
			return;
		}

	/* ... */

	WSReleaseUTF32String(lp, string, len);
}

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(NonWLLink[WSGetString(), paclet:ref/c/WSGetString])  ▪  (NonWLLink[WSGetByteString(), paclet:ref/c/WSGetByteString])  ▪  (NonWLLink[WSGetUCS2String(), paclet:ref/c/WSGetUCS2String])  ▪  (NonWLLink[WSGetUTF8String(), paclet:ref/c/WSGetUTF8String])  ▪  (NonWLLink[WSGetUTF16String(), paclet:ref/c/WSGetUTF16String])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Manipulating Expressions in External Programs, paclet:tutorial/ManipulatingExpressionsInExternalPrograms])}, {▪(RefLinkPlain[Handling Lists, Arrays and Other Expressions, paclet:tutorial/HandlingListsArraysAndOtherExpressions])}, {▪(RefLinkPlain[Portability of WSTP Programs, paclet:tutorial/PortabilityOfWSTPPrograms])}, {▪(RefLinkPlain[WSTP C API Developer Guide (Mac OS X), paclet:tutorial/WSTPDeveloperGuide-MacintoshOverview])}, {▪(RefLinkPlain[WSTP C API Developer Guide (Unix and Linux), paclet:tutorial/WSTPDeveloperGuide-UnixOverview])}, {▪(RefLinkPlain[WSTP C API Developer Guide (Windows), paclet:tutorial/WSTPDeveloperGuide-WindowsOverview])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Alphabetical Listing of WSTP C Functions, paclet:guide/AlphabeticalListingOfWSTPCFunctions])}, {▪(RefLinkPlain[WSTP C Functions for Exchanging Strings, paclet:guide/WSTPCFunctionsForExchangingStrings])}})}})