sdlStrndup function
Allocate a copy of a string, up to n characters.
This allocates enough space for a null-terminated copy of str
, up to
maxlen
bytes, using SDL_malloc, and then makes a copy of the string into
this space.
If the string is longer than maxlen
bytes, the returned string will be
maxlen
bytes long, plus a null-terminator character that isn't included
in the count.
The returned string is owned by the caller, and should be passed to SDL_free when no longer needed.
\param str the string to copy. \param maxlen the maximum length of the copied string, not counting the null-terminator character. \returns a pointer to the newly-allocated string.
\threadsafety It is safe to call this function from any thread.
\since This function is available since SDL 3.1.3.
extern SDL_DECLSPEC SDL_MALLOC char * SDLCALL SDL_strndup(const char *str, size_t maxlen)
Implementation
Pointer<Int8> sdlStrndup(String? str, int maxlen) {
final sdlStrndupLookupFunction = libSdl3.lookupFunction<
Pointer<Int8> Function(Pointer<Utf8> str, Uint32 maxlen),
Pointer<Int8> Function(Pointer<Utf8> str, int maxlen)>('SDL_strndup');
final strPointer = str != null ? str.toNativeUtf8() : nullptr;
final result = sdlStrndupLookupFunction(strPointer, maxlen);
calloc.free(strPointer);
return result;
}