summaryrefslogtreecommitdiff
path: root/man3/strtol.3
diff options
context:
space:
mode:
authorMichael Kerrisk <mtk.manpages@gmail.com>2007-04-12 22:42:49 +0000
committerMichael Kerrisk <mtk.manpages@gmail.com>2007-04-12 22:42:49 +0000
commitc13182efa3b3d77f2563034c8212c0ca798243ca (patch)
treee7652b26018b7c22cd6a4e4b41404dfaab911303 /man3/strtol.3
parent4174ff5658082832c2ed511720f18881b3a80a34 (diff)
Wrapped long lines, wrapped at sentence boundaries; stripped trailing
white space.
Diffstat (limited to 'man3/strtol.3')
-rw-r--r--man3/strtol.345
1 files changed, 25 insertions, 20 deletions
diff --git a/man3/strtol.3 b/man3/strtol.3
index 41e11277..9945675f 100644
--- a/man3/strtol.3
+++ b/man3/strtol.3
@@ -8,7 +8,7 @@
.\" 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
@@ -16,7 +16,7 @@
.\" 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.
.\"
@@ -47,22 +47,24 @@ which must be between 2 and 36 inclusive, or be the special value 0.
The string may 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
+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
+The remainder of the string is converted to a
.I 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
+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
+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
@@ -75,9 +77,12 @@ function works just like the
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.
+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
.BR strtoll ()
(with LLONG_MIN and LLONG_MAX instead of LONG_MIN and LONG_MAX).
@@ -95,14 +100,14 @@ The resulting value was out of range.
The implementation may also set \fIerrno\fP to \fBEINVAL\fP in case
no conversion was performed (no digits seen, and 0 returned).
.SH NOTES
-Since
+Since
.BR strtol ()
-can legitimately return 0,
+can legitimately return 0,
LONG_MAX, or LONG_MIN (LLONG_MAX or LLONG_MIN for
.BR strtoll ())
on both success and failure, the calling program should set
.I errno
-to 0 before the call,
+to 0 before the call,
and then determine if an error occurred by checking whether
.I errno
has a non-zero value after the call.
@@ -134,14 +139,14 @@ to C99 and POSIX.1-2001.
.SH EXAMPLE
The program shown below demonstrates the use of
.BR strtol ().
-The first command line argument specifies a string from which
+The first command line argument specifies a string from which
.BR strtol ()
should parse a number.
-The second (optional) argument specifies the base to be used for
+The second (optional) argument specifies the base to be used for
the conversion.
(This argument is converted to numeric form using
.BR atoi (3),
-a function that performs no error checking and
+a function that performs no error checking and
has a simpler interface than
.BR strtol ().)
Some examples of the results produced by this program are the following:
@@ -182,7 +187,7 @@ main(int argc, char *argv[])
if (argc < 2) {
fprintf(stderr, "Usage: %s str [base]\\n", argv[0]);
exit(EXIT_FAILURE);
- }
+ }
str = argv[1];
base = (argc > 2) ? atoi(argv[2]) : 10;
@@ -196,12 +201,12 @@ main(int argc, char *argv[])
|| (errno != 0 && val == 0)) {
perror("strtol");
exit(EXIT_FAILURE);
- }
+ }
if (endptr == str) {
fprintf(stderr, "No digits were found\\n");
exit(EXIT_FAILURE);
- }
+ }
/* If we got here, strtol() successfully parsed a number */