X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/1c15e88899094343f75aeba04122cd96a96b428e..refs/tags/BSD-4_3_Net_2:/usr/src/lib/libc/stdlib/strtoul.3 diff --git a/usr/src/lib/libc/stdlib/strtoul.3 b/usr/src/lib/libc/stdlib/strtoul.3 index 8f7738f125..696c63f936 100644 --- a/usr/src/lib/libc/stdlib/strtoul.3 +++ b/usr/src/lib/libc/stdlib/strtoul.3 @@ -1,109 +1,147 @@ -.\" Copyright (c) 1990 The Regents of the University of California. +.\" Copyright (c) 1990, 1991 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by -.\" Chris Torek. +.\" Chris Torek and the American National Standards Committee X3, +.\" on Information Processing Systems. .\" -.\" Redistribution and use in source and binary forms are permitted -.\" provided that: (1) source distributions retain this entire copyright -.\" notice and comment, and (2) distributions including binaries display -.\" the following acknowledgement: ``This product includes software -.\" developed by the University of California, Berkeley and its contributors'' -.\" in the documentation or other materials provided with the distribution -.\" and in all advertising materials mentioning features or use of this -.\" software. Neither the name of the University nor the names of its -.\" contributors may be used to endorse or promote products derived -.\" from this software without specific prior written permission. -.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR -.\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED -.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. .\" -.\" @(#)strtoul.3 5.1 (Berkeley) 5/15/90 +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. .\" -.TH STRTOUL 3 "May 15, 1990" -.UC 7 -.SH NAME -strtoul \- convert a string to an unsigned long integer -.SH SYNOPSIS -.B #include -.br -.B #include -.PP -.B "unsigned long strtoul(char *nptr, char **endptr, int base); -.SH DESCRIPTION -.B Strtoul +.\" @(#)strtoul.3 5.3 (Berkeley) 6/29/91 +.\" +.Dd June 29, 1991 +.Dt STRTOUL 3 +.Os +.Sh NAME +.Nm strtoul +.Nd convert a string to an unsigned long integer +.Sh SYNOPSIS +.Fd #include +.Fd #include +.Fn strtoul "const char *nptr" "char **endptr" "int base" +.Sh DESCRIPTION +The +.Fn strtoul +function converts the string in -.I nptr +.Fa nptr to an -.B "unsigned long" +.Em unsigned long value according to the given -.IR base , +.Fa base , which must be between 2 and 36 inclusive, or be the special value 0. -.PP +.Pp The string may begin with an arbitrary amount of white space (as determined by -.BR isspace ; -see -.IR ctype (3)), -followed by a single optional `+' or `-' sign. +.Xr isspace 3 ) +followed by a single optional +.Ql + +or +.Ql - +sign. If -.I base +.Fa base is zero or 16, -the string may then include a `0x' prefix, +the string may then include a +.Ql 0x +prefix, and the number will be read in base 16; otherwise, a zero -.I base -is taken as 10 (decimal) unless the next character is `0', +.Fa base +is taken as 10 (decimal) unless the next character is +.Ql 0 , in which case it is taken as 8 (octal). -.PP +.Pp The remainder of the string is converted to an -.B "unsigned long" +.Em unsigned long value in the obvious manner, stopping at the end of the string or at the first character that does not produce 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 +(In bases above 10, the letter +.Ql A +in either upper or lower case +represents 10, +.Ql B +represents 11, and so forth, with +.Ql Z +representing 35.) +.Pp If -.I endptr +.Fa endptr is non nil, -.B strtoul +.Fn strtoul stores the address of the first invalid character in -.IR *endptr . +.Fa *endptr . If there were no digits at all, however, -.B strtoul +.Fn strtoul stores the original value of -.I nptr +.Fa nptr in -.IR *endptr . +.Fa *endptr . (Thus, if -.I *nptr -is not '\e0' but -.IR **endptr -is '\e0' on return, the entire string was valid.) -.SH RETURN VALUE -.B Strtoul +.Fa *nptr +is not +.Ql \e0 +but +.Fa **endptr +is +.Ql \e0 +on return, the entire string was valid.) +.Sh RETURN VALUES +The +.Fn strtoul +function returns either the result of the conversion or, if there was a leading minus sign, the negation of the result of the conversion, unless the original (non-negated) value would overflow; in the latter case, -.B strtoul +.Fn strtoul returns -.B ULONG_MAX -and sets -.B errno +.Dv ULONG_MAX +and sets the global variable +.Va errno to -.BR ERANGE . -.SH ERRORS -.TP -[ERANGE] +.Er ERANGE . +.Sh ERRORS +.Bl -tag -width [ERANGE] +.It Bq Er ERANGE The given string was out of range; the value converted has been clamped. -.SH SEE ALSO -strtol(3) -.SH STANDARDS -.B Strtoul -conforms to ANSI X3.159-1989 (``ANSI C''). -.SH BUGS +.El +.Sh SEE ALSO +.Xr strtol 3 +.Sh STANDARDS +The +.Fn strtoul +function +conforms to +.St -ansiC . +.Sh BUGS Ignores the current locale.