sdlStrtoll function

Pointer<NativeType> sdlStrtoll(
  1. String? str,
  2. Pointer<Pointer<Int8>> endp,
  3. int base
)

Parse a long long from a string.

If str starts with whitespace, then those whitespace characters are skipped before attempting to parse the number.

If the parsed number does not fit inside a long long, the result is clamped to the minimum and maximum representable long long values.

\param str The null-terminated string to read. Must not be NULL. \param endp If not NULL, the address of the first invalid character (i.e. the next character after the parsed number) will be written to this pointer. \param base The base of the integer to read. Supported values are 0 and 2 to 36 inclusive. If 0, the base will be inferred from the number's prefix (0x for hexadecimal, 0 for octal, decimal otherwise). \returns The parsed long long, or 0 if no number could be parsed.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.1.3.

\sa SDL_atoi \sa SDL_atof \sa SDL_strtol \sa SDL_strtoul \sa SDL_strtoull \sa SDL_strtod \sa SDL_lltoa

extern SDL_DECLSPEC long long SDLCALL SDL_strtoll(const char *str, char **endp, int base)

Implementation

Pointer<NativeType> sdlStrtoll(
    String? str, Pointer<Pointer<Int8>> endp, int base) {
  final sdlStrtollLookupFunction = libSdl3.lookupFunction<
      Pointer<NativeType> Function(
          Pointer<Utf8> str, Pointer<Pointer<Int8>> endp, Int32 base),
      Pointer<NativeType> Function(Pointer<Utf8> str,
          Pointer<Pointer<Int8>> endp, int base)>('SDL_strtoll');
  final strPointer = str != null ? str.toNativeUtf8() : nullptr;
  final result = sdlStrtollLookupFunction(strPointer, endp, base);
  calloc.free(strPointer);
  return result;
}