---
name: "atol"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/atol"
---

# atol(3)

convert ASCII string to long or long long integer

## NAME

**atol**, **atoll**, **atol\_l**, **atoll\_l** – convert ASCII string to *long* or *long long* integer

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<stdlib.h\>**

*long*\

**atol**(*const char \*str*);

*long long*\

**atoll**(*const char \*str*);

**#include \<xlocale.h\>**

*long*\

**atol\_l**(*const char \*str*, *locale\_t loc*);

*long long*\

**atoll\_l**(*const char \*str*, *locale\_t loc*);

## DESCRIPTION

The **atol**() function converts the initial portion of the string pointed to by *str* to *long* integer representation.

It is equivalent to:

```
strtol(str, (char **)NULL, 10);
```

The **atoll**() function converts the initial portion of the string pointed to by *str* to *long long* integer representation.

It is equivalent to:

```
strtoll(str, (char **)NULL, 10);
```

While the **atol**() and **atoll**() functions use the current locale, the **atol\_l**() and **atoll\_l**() functions may be passed locales directly. See [xlocale(3)](/xlocale/3.md) for more information.

## IMPLEMENTATION NOTES

The **atol**(), **atoll**(), **atol\_l**(), and **atoll\_l**() functions are thread-safe and async-cancel-safe.

The FreeBSD implementations of the **atol**() and **atoll**() functions are thin wrappers around **strtol**() and **stroll**() respectively, so these functions will affect the value of *errno* in the same way that the **strtol**() and **stroll**() functions are able to. This behavior of **atol**() and **atoll**() is not required by ISO/IEC 9899:1990 (“ISO C90”) or ISO/IEC 9899:1999 (“ISO C99”), but it is allowed by all of ISO/IEC 9899:1990 (“ISO C90”), ISO/IEC 9899:1999 (“ISO C99”) and IEEE Std 1003.1-2001 (“POSIX.1”).

## ERRORS

The functions **atol**() and **atoll**() may affect the value of *errno* on an error.

## SEE ALSO

[atof(3)](/atof/3.md), [atoi(3)](/atoi/3.md), [strtod(3)](/strtod/3.md), [strtol(3)](/strtol/3.md), [strtoul(3)](/strtoul/3.md), [xlocale(3)](/xlocale/3.md)

## STANDARDS

The **atol**() function conforms to ISO/IEC 9899:1990 (“ISO C90”). The **atoll**() function conforms to ISO/IEC 9899:1999 (“ISO C99”).
