---
name: "_i64toa"
section: "3w"
platform: "linux"
package: "libwine-dev"
version: "1.4.1-4"
release: "Debian 7 (Wheezy)"
platforms: ["linux"]
url: "https://new.carta.tech/_i64toa"
---

# \_i64toa(3w)

## NAME

**\_i64toa** (NTDLL.@)

## SYNOPSIS

char \* \_i64toa\
  (\
   LONGLONG *value*,\
   char\*    *str*,\
   int      *radix*\
  )

## PARAMS

*value* **\[In\]**  Value to be converted.

*str* **\[Out\]**  Destination for the converted *value*.

*radix* **\[In\]**  Number base for conversion.

## DESCRIPTION

Converts a large integer to a string.

## RETURNS

*str*.

## NOTES

**-** Converts *value* to a Nul terminated string which is copied to *str*.

**-** The maximum length of the copied *str* is **65** bytes. If *radix* is **10** and *value* is negative, the *value* is converted with sign.

**-** Does not check if *radix* is in the range of **2** to **36.**

**-** If *str* is **NULL** it crashes, as the native function does.

## DIFFERENCES

**-** The native dll converts negative values (for base **10**) wrong: \
\
                      \-1 is converted to -18446744073709551615\
\
                      \-2 is converted to -18446744073709551614\
\
    \-9223372036854775807 is converted to  -9223372036854775809\
\
    \-9223372036854775808 is converted to  -9223372036854775808

The native msvcrt \_i64toa function and our ntdll \_i64toa function do not have this bug.

## IMPLEMENTATION

Declared in **"msvcrt/stdlib.h"**.

Implemented in **"dlls/ntdll/string.c"**.
