|
@ -0,0 +1,114 @@ |
|
|
|
|
|
.\" 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 and the American National Standards Committee X3, |
|
|
|
|
|
.\" on Information Processing Systems. |
|
|
|
|
|
.\" |
|
|
|
|
|
.\" 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. 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 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. |
|
|
|
|
|
.\" |
|
|
|
|
|
.\" $OpenBSD: strtonum.3,v 1.1 2004/05/03 17:09:24 tedu Exp $ |
|
|
|
|
|
.\" |
|
|
|
|
|
.Dd April 29, 2004 |
|
|
|
|
|
.Dt STRTONUM 3 |
|
|
|
|
|
.Os |
|
|
|
|
|
.Sh NAME |
|
|
|
|
|
.Nm strtonum |
|
|
|
|
|
.Nd "reliably convert string value to an integer" |
|
|
|
|
|
.Sh SYNOPSIS |
|
|
|
|
|
.Fd #include <stdlib.h> |
|
|
|
|
|
.Fd #include <limits.h> |
|
|
|
|
|
.Ft unsigned long long |
|
|
|
|
|
.Fo strtonum |
|
|
|
|
|
.Fa "const char *nptr" |
|
|
|
|
|
.Fa "long long minval" |
|
|
|
|
|
.Fa "unsigned long long maxval" |
|
|
|
|
|
.Fa "const char **errstr" |
|
|
|
|
|
.Fc |
|
|
|
|
|
.Sh DESCRIPTION |
|
|
|
|
|
The |
|
|
|
|
|
.Fn strtonum |
|
|
|
|
|
function converts the string in |
|
|
|
|
|
.Fa nptr |
|
|
|
|
|
to an |
|
|
|
|
|
.Li unsigned long long |
|
|
|
|
|
value. |
|
|
|
|
|
The conversion is done according to base 10. |
|
|
|
|
|
Negative values may be obtained by casting the result. |
|
|
|
|
|
.Pp |
|
|
|
|
|
The string may begin with an arbitrary amount of whitespace |
|
|
|
|
|
(as determined by |
|
|
|
|
|
.Xr isspace 3 ) |
|
|
|
|
|
followed by a single optional |
|
|
|
|
|
.Ql + |
|
|
|
|
|
or |
|
|
|
|
|
.Ql - |
|
|
|
|
|
sign. |
|
|
|
|
|
.Pp |
|
|
|
|
|
The remainder of the string is converted to an |
|
|
|
|
|
.Li unsigned long long |
|
|
|
|
|
value in the obvious manner, |
|
|
|
|
|
stopping at the first character which is not a valid digit |
|
|
|
|
|
in the given base. |
|
|
|
|
|
.Pp |
|
|
|
|
|
The value obtained is then checked against the provided |
|
|
|
|
|
.Fa minval |
|
|
|
|
|
and |
|
|
|
|
|
.Fa maxval |
|
|
|
|
|
bounds. |
|
|
|
|
|
If |
|
|
|
|
|
.Fa errstr |
|
|
|
|
|
is non-null, |
|
|
|
|
|
.Fn strtonum |
|
|
|
|
|
stores an error string in |
|
|
|
|
|
.Fa *endptr |
|
|
|
|
|
indicating the failure. |
|
|
|
|
|
.Sh RETURN VALUES |
|
|
|
|
|
The |
|
|
|
|
|
.Fn strtol |
|
|
|
|
|
function returns the result of the conversion, |
|
|
|
|
|
unless the value would underflow or overflow. |
|
|
|
|
|
On error, 0 is returned. |
|
|
|
|
|
.Sh ERRORS |
|
|
|
|
|
.Bl -tag -width Er |
|
|
|
|
|
.It Bq Er ERANGE |
|
|
|
|
|
The given string was out of range. |
|
|
|
|
|
.It Bq Er EINVAL |
|
|
|
|
|
The given string did not consist solely of a valid number. |
|
|
|
|
|
.El |
|
|
|
|
|
.Sh SEE ALSO |
|
|
|
|
|
.Xr atof 3 , |
|
|
|
|
|
.Xr atoi 3 , |
|
|
|
|
|
.Xr atol 3 , |
|
|
|
|
|
.Xr atoll 3 , |
|
|
|
|
|
.Xr sscanf 3 , |
|
|
|
|
|
.Xr strtol 3 , |
|
|
|
|
|
.Xr strtod 3 , |
|
|
|
|
|
.Xr strtoul 3 |
|
|
|
|
|
.Sh STANDARDS |
|
|
|
|
|
.Fn strtonum |
|
|
|
|
|
is an |
|
|
|
|
|
.Ox |
|
|
|
|
|
extension. |