summaryrefslogtreecommitdiffstats
path: root/man3/strtol.3
diff options
context:
space:
mode:
Diffstat (limited to 'man3/strtol.3')
-rw-r--r--man3/strtol.3125
1 files changed, 125 insertions, 0 deletions
diff --git a/man3/strtol.3 b/man3/strtol.3
new file mode 100644
index 000000000..e05cef145
--- /dev/null
+++ b/man3/strtol.3
@@ -0,0 +1,125 @@
+.\" Copyright 1993 David Metcalfe (david@prism.demon.co.uk)
+.\"
+.\" Permission is granted to make and distribute verbatim copies of this
+.\" manual provided the copyright notice and this permission notice are
+.\" preserved on all copies.
+.\"
+.\" Permission is granted to copy and distribute modified versions of this
+.\" manual under the conditions for verbatim copying, provided that the
+.\" entire resulting derived work is distributed under the terms of a
+.\" permission notice identical to this one.
+.\"
+.\" Since the Linux kernel and libraries are constantly changing, this
+.\" manual page may be incorrect or out-of-date. The author(s) assume no
+.\" responsibility for errors or omissions, or for damages resulting from
+.\" the use of the information contained herein. The author(s) may not
+.\" have taken the same level of care in the production of this manual,
+.\" which is licensed free of charge, as they might when working
+.\" professionally.
+.\"
+.\" Formatted or processed versions of this manual, if unaccompanied by
+.\" the source, must acknowledge the copyright and authors of this work.
+.\"
+.\" References consulted:
+.\" Linux libc source code
+.\" Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991)
+.\" 386BSD man pages
+.\" Modified Sun Jul 25 10:53:39 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Added correction due to nsd@bbc.com (Nick Duffek) - aeb, 950610
+.TH STRTOL 3 2002-05-30 "GNU" "Linux Programmer's Manual"
+.SH NAME
+strtol, strtoll, strtoq \- convert a string to a long integer
+.SH SYNOPSIS
+.nf
+.B #include <stdlib.h>
+.sp
+.BI "long int"
+.BI "strtol(const char *" nptr ", char **" endptr ", int " base );
+.sp
+.BI "long long int"
+.BI "strtoll(const char *" nptr ", char **" endptr ", int " base );
+.fi
+.SH DESCRIPTION
+The \fBstrtol()\fP function converts the initial part of the string
+in \fInptr\fP to a long integer value according to the given \fIbase\fP,
+which must be between 2 and 36 inclusive, or be the special value 0.
+.PP
+The string must begin with an arbitrary amount of white space (as
+determined by
+.BR isspace (3))
+followed by a single optional `+' or `-'
+sign. If \fIbase\fP is zero or 16, the string may then include a
+`0x' prefix, and the number will be read in base 16; otherwise, a
+zero \fIbase\fP is taken as 10 (decimal) unless the next character
+is `0', in which case it is taken as 8 (octal).
+.PP
+The remainder of the string is converted to a long int value
+in the obvious manner, stopping at the first character which is not a
+valid digit in the given base. (In bases above 10, the letter `A' in
+either upper or lower case represents 10, `B' represents 11, and so
+forth, with `Z' representing 35.)
+.PP
+If \fIendptr\fP is not NULL, \fBstrtol()\fP stores the address of the
+first invalid character in \fI*endptr\fP. If there were no digits at
+all, \fBstrtol()\fP stores the original value of \fInptr\fP in
+\fI*endptr\fP (and returns 0).
+In particular, if \fI*nptr\fP is not `\\0' but \fI**endptr\fP
+is `\\0' on return, the entire string is valid.
+.PP
+The
+.B strtoll()
+function works just like the
+.B strtol()
+function but returns a long long integer value.
+.SH "RETURN VALUE"
+The \fBstrtol()\fP function returns the result of the conversion,
+unless the value would underflow or overflow. If an underflow occurs,
+\fBstrtol()\fP returns LONG_MIN. If an overflow occurs, \fBstrtol()\fP
+returns LONG_MAX. In both cases, \fIerrno\fP is set to ERANGE.
+Precisely the same holds for
+.B strtoll()
+(with LLONG_MIN and LLONG_MAX instead of LONG_MIN and LONG_MAX).
+.SH ERRORS
+.TP
+.B EINVAL
+(not in C99)
+The given
+.I base
+contains an unsupported value.
+.TP
+.B ERANGE
+The resulting value was out of range.
+.LP
+The implementation may also set \fIerrno\fP to \fBEINVAL\fP in case
+no conversion was performed (no digits seen, and 0 returned).
+.SH NOTES
+In locales other than the "C" locale, also other strings may be accepted.
+(For example, the thousands separator of the current locale may be
+supported.)
+.LP
+BSD also has
+.sp
+.in +4n
+.nf
+.BI "quad_t"
+.BI "strtoq(const char *" nptr ", char **" endptr ", int " base );
+.sp
+.in -4n
+.fi
+with completely analogous definition.
+Depending on the wordsize of the current architecture, this
+may be equivalent to
+.B strtoll()
+or to
+.BR strtol() .
+.SH "CONFORMING TO"
+.B strtol()
+conforms to SVID 3, BSD 4.3, ISO 9899 (C99) and POSIX, and
+.B strtoll()
+to ISO 9899 (C99) and POSIX 1003.1-2001.
+.SH "SEE ALSO"
+.BR atof (3),
+.BR atoi (3),
+.BR atol (3),
+.BR strtod (3),
+.BR strtoul (3)