diff options
author | Michael Kerrisk <mtk.manpages@gmail.com> | 2007-04-12 22:42:49 +0000 |
---|---|---|
committer | Michael Kerrisk <mtk.manpages@gmail.com> | 2007-04-12 22:42:49 +0000 |
commit | c13182efa3b3d77f2563034c8212c0ca798243ca (patch) | |
tree | e7652b26018b7c22cd6a4e4b41404dfaab911303 /man3/strtol.3 | |
parent | 4174ff5658082832c2ed511720f18881b3a80a34 (diff) |
Wrapped long lines, wrapped at sentence boundaries; stripped trailing
white space.
Diffstat (limited to 'man3/strtol.3')
-rw-r--r-- | man3/strtol.3 | 45 |
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 */ |