.\" Copyright (c) 2003 Andries Brouwer (aeb@cwi.nl)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH STRTOIMAX 3 2003-11-28 "" "Linux Programmer's Manual"
.SH NAME
strtoimax, strtoumax \- convert string to integer
.SH SYNOPSIS
.nf
.B #include <inttypes.h>
.sp
.BI "intmax_t strtoimax(const char *" nptr ", char **" endptr ", int " base );
.br
.BI "uintmax_t strtoumax(const char *" nptr ", char **" endptr ", int " base );
.fi
.SH DESCRIPTION
These functions are just like
.BR strtol (3)
and
.BR strtoul (3),
except that they return a value of type
.I intmax_t
and
.IR uintmax_t ,
respectively.
.SH "RETURN VALUE"
On success, the converted value is returned.
If nothing was found to convert, zero is returned.
On overflow or underflow
.B INTMAX_MAX
or
.B INTMAX_MIN
or
.B UINTMAX_MAX
is returned, and
.I errno
is set to
.BR ERANGE .
.SH "CONFORMING TO"
C99, POSIX.1-2001.
.SH "SEE ALSO"
.BR imaxabs (3),
.BR imaxdiv (3),
.BR strtol (3),
.BR strtoul (3),
.BR wcstoimax (3)
