BSD 4_3_Net_2 release
[unix-history] / usr / src / lib / libc / string / string.3
index 894961b..3371a45 100644 (file)
-.\" Copyright (c) 1980 Regents of the University of California.
-.\" All rights reserved.  The Berkeley software License Agreement
-.\" specifies the terms and conditions for redistribution.
+.\" Copyright (c) 1990, 1991 The Regents of the University of California.
+.\" All rights reserved.
 .\"
 .\"
-.\"    @(#)string.3    6.3 (Berkeley) %G%
+.\" This code is derived from software contributed to Berkeley by
+.\" Chris Torek.
+.\" 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.
 .\"
 .\"
-.TH STRING 3  ""
-.UC 4
-.SH NAME
-strcat, strncat, strcmp, strncmp, strcasecmp, strcasencmp, strcpy,
-strncpy, strlen, index, rindex \- string operations
-.SH SYNOPSIS
-.nf
-.B #include <strings.h>
-.PP
-.B char *strcat(s1, s2)
-.B char *s1, *s2;
-.PP
-.B char *strncat(s1, s2, n)
-.B char *s1, *s2;
-.PP
-.B strcmp(s1, s2)
-.B char *s1, *s2;
-.PP
-.B strncmp(s1, s2, n)
-.B char *s1, *s2;
-.PP
-.B strcasecmp(s1, s2)
-.B char *s1, *s2;
-.PP
-.B strcasencmp(s1, s2, n)
-.B char *s1, *s2;
-.PP
-.B char *strcpy(s1, s2)
-.B char *s1, *s2;
-.PP
-.B char *strncpy(s1, s2, n)
-.B char *s1, *s2;
-.PP
-.B strlen(s)
-.B char *s;
-.PP
-.B char *index(s, c)
-.B char *s, c;
-.PP
-.B char *rindex(s, c)
-.B char *s, c;
-.fi
-.SH DESCRIPTION
-These functions operate on null-terminated strings.
-They do not check for overflow of any receiving string.
-.PP
-.I Strcat
-appends a copy of string
-.I s2
-to the end of string
-.IR s1 .
-.I Strncat
-copies at most
-.I n
-characters.  Both return a pointer to the null-terminated result.
-.PP
-.I Strcmp
-compares its arguments and returns an integer
-greater than, equal to, or less than 0, according as
-.I s1
-is lexicographically greater than, equal to, or less than
-.IR s2 .
-.I Strncmp
-makes the same comparison but looks at at most
-.I n
-characters.  \fIStrcasecmp\fP and \fIstrcasencmp\fP are identical
-in function, but are case insensitive.  The returned lexicographic
-difference reflects a conversion to lower-case.
-.PP
-.I Strcpy
-copies string
-.I s2
-to
-.I s1,
-stopping after the null character has been moved.
-.I Strncpy
-copies exactly
-.I n
-characters, truncating or null-padding
-.I s2;
-the target may not be null-terminated if the length of
-.I s2
-is
-.I n
-or more.  Both return
-.IR s1 .
-.PP
-.I Strlen
-returns the number of non-null characters in
-.IR s .
-.PP
-.I Index
-.RI ( rindex )
-returns a pointer to the first (last) occurrence of character 
-\fIc\fP in string \fIs\fP or zero if \fIc\fP does not occur in
-the string.  Setting \fIc\fP to NULL works.
+.\" 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.
+.\"
+.\"     @(#)string.3   6.9 (Berkeley) 4/19/91
+.\"
+.Dd April 19, 1991
+.Dt STRING 3
+.Os BSD 4
+.Sh NAME
+.Nm strcat ,
+.Nm strncat ,
+.Nm strchr ,
+.Nm strrchr ,
+.Nm strcmp ,
+.Nm strncmp ,
+.Nm strcasecmp,
+.Nm strncasecmp ,
+.Nm strcpy ,
+.Nm strncpy ,
+.Nm strerror ,
+.Nm strlen ,
+.Nm strpbrk ,
+.Nm strsep,
+.Nm strspn ,
+.Nm strcspn ,
+.Nm strstr ,
+.Nm strtok ,
+.Nm index ,
+.Nm rindex
+.Nd string specific functions
+.Sh SYNOPSIS
+.Fd #include <string.h>
+.Ft char *
+.Fn strcat "char *s" "const char * append"
+.Ft char *
+.Fn strncat "char *s" "const char *append" "size_t count"
+.Ft char *
+.Fn strchr "const char *s" "int c"
+.Ft char *
+.Fn strrchr "const char *s" "int c"
+.Ft int
+.Fn strcmp "const char *s1" "const char *s2"
+.Ft int
+.Fn strncmp "const char *s1" "const char *s2" "size_t count"
+.Ft int
+.Fn strcasecmp "const char *s1" "const char *s2"
+.Ft int
+.Fn strncasecmp "const char *s1" "const char *s2" "size_t count"
+.Ft char *
+.Fn strcpy "char *dst" "const char *src"
+.Ft char *
+.Fn strncpy "char *dst" "const char *src" "size_t count"
+.Ft char *
+.Fn strerror "int errno"
+.Ft size_t
+.Fn strlen "const char *s"
+.Ft char *
+.Fn strpbrk "const char *s" "const char *charset"
+.Ft char *
+.Fn strsep "char **stringp" "const char *delim"
+.Ft size_t
+.Fn strspn "const char *s" "const char *charset"
+.Ft size_t
+.Fn strcspn "const char *s" "const char *charset"
+.Ft char *
+.Fn strstr "const char *big" "const char *little"
+.Ft char *
+.Fn strtok "char *s" "const char *delim"
+.Ft char *
+.Fn index "const char *s" "int c"
+.Ft char *
+.Fn rindex "const char *s" "int c"
+.Sh DESCRIPTION
+The string functions
+functions manipulate strings terminated by a
+null byte.
+.Pp
+See the specific manual pages for more information.
+For manipulating variable length generic objects as byte
+strings (without the null byte check), see
+.Xr bstring 3 .
+.Pp
+Except as noted in their specific manual pages,
+the string functions do not test the destination
+for size limitations.
+.Sh SEE ALSO
+.Xr index 3 ,
+.Xr strcat 3 ,
+.Xr strchr 3 ,
+.Xr strrchr 3 ,
+.Xr strcmp 3 ,
+.Xr strcasecmp 3 ,
+.Xr strcpy 3 ,
+.Xr strerror 3 ,
+.Xr strlen 3 ,
+.Xr strpbrk 3 ,
+.Xr strsep 3 ,
+.Xr strspn 3 ,
+.Xr strcspn 3 ,
+.Xr strstr 3 ,
+.Xr strtok 3 ,
+.Xr rindex 3
+.Xr bstring 3
+.Sh STANDARDS
+The
+.Fn strcat ,
+.Fn strncat ,
+.Fn strchr ,
+.Fn strrchr ,
+.Fn strcmp ,
+.Fn strncmp ,
+.Fn strcpy ,
+.Fn strncpy ,
+.Fn strerror ,
+.Fn strlen ,
+.Fn strpbrk ,
+.Fn strsep ,
+.Fn strspn ,
+.Fn strcspn ,
+.Fn strstr ,
+and
+.Fn strtok
+functions
+conform to
+.St -ansiC .