string.h revision 93032
1139743Simp/*-
239212Sgibbs * Copyright (c) 1990, 1993
339212Sgibbs *	The Regents of the University of California.  All rights reserved.
439212Sgibbs *
539212Sgibbs * Redistribution and use in source and binary forms, with or without
639212Sgibbs * modification, are permitted provided that the following conditions
739212Sgibbs * are met:
839212Sgibbs * 1. Redistributions of source code must retain the above copyright
939212Sgibbs *    notice, this list of conditions and the following disclaimer.
1039212Sgibbs * 2. Redistributions in binary form must reproduce the above copyright
1139212Sgibbs *    notice, this list of conditions and the following disclaimer in the
1239212Sgibbs *    documentation and/or other materials provided with the distribution.
1339212Sgibbs * 3. All advertising materials mentioning features or use of this software
1439212Sgibbs *    must display the following acknowledgement:
1539212Sgibbs *	This product includes software developed by the University of
1639212Sgibbs *	California, Berkeley and its contributors.
1739212Sgibbs * 4. Neither the name of the University nor the names of its contributors
1839212Sgibbs *    may be used to endorse or promote products derived from this software
1939212Sgibbs *    without specific prior written permission.
2039212Sgibbs *
2139212Sgibbs * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
2239212Sgibbs * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
2339212Sgibbs * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2439212Sgibbs * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
2539212Sgibbs * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2639212Sgibbs * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2739212Sgibbs * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28116161Sobrien * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29116161Sobrien * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30116161Sobrien * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31116161Sobrien * SUCH DAMAGE.
3239212Sgibbs *
3374840Sken *	@(#)string.h	8.1 (Berkeley) 6/2/93
3474840Sken * $FreeBSD: head/include/string.h 93032 2002-03-23 17:24:55Z imp $
3589114Smsmith */
3689114Smsmith
3774840Sken#ifndef _STRING_H_
3874840Sken#define	_STRING_H_
3974840Sken#include <machine/ansi.h>
40216088Sken
41194189Sed#ifdef	_BSD_SIZE_T_
4274840Skentypedef	_BSD_SIZE_T_	size_t;
4374840Sken#undef	_BSD_SIZE_T_
4439212Sgibbs#endif
4574840Sken
4674840Sken#ifndef	NULL
47216088Sken#define	NULL	0
4874840Sken#endif
4939212Sgibbs
5074840Sken#include <sys/cdefs.h>
5174840Sken
52195534Sscottl__BEGIN_DECLS
5374840Skenvoid	*memchr(const void *, int, size_t);
54219028Snetchildint	 memcmp(const void *, const void *, size_t);
55219028Snetchildvoid	*memcpy(void *, const void *, size_t);
56219028Snetchildvoid	*memmove(void *, const void *, size_t);
5774840Skenvoid	*memset(void *, int, size_t);
5874840Skenchar	*strcat(char *, const char *);
5974840Skenchar	*strchr(const char *, int);
6074840Skenint	 strcmp(const char *, const char *);
6174840Skenint	 strcoll(const char *, const char *);
6274840Skenchar	*strcpy(char *, const char *);
6374840Skensize_t	 strcspn(const char *, const char *);
6474840Skenchar	*strerror(int);
6574840Skensize_t	 strlen(const char *);
6674840Skenchar	*strncat(char *, const char *, size_t);
67210779Sbcrint	 strncmp(const char *, const char *, size_t);
6874840Skenchar	*strncpy(char *, const char *, size_t);
6974840Skenchar	*strpbrk(const char *, const char *);
7074840Skenchar	*strrchr(const char *, int);
7174840Skensize_t	 strspn(const char *, const char *);
7274840Skenchar	*strstr(const char *, const char *);
7374840Skenchar	*strtok(char *, const char *);
7474840Skensize_t	 strxfrm(char *, const char *, size_t);
7574840Sken
7674840Sken/* Nonstandard routines */
7774840Sken#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
7874840Skenint	 bcmp(const void *, const void *, size_t);
7974840Skenvoid	 bcopy(const void *, void *, size_t);
8074840Skenvoid	 bzero(void *, size_t);
8174840Skenint	 ffs(int);
8274840Skenchar	*index(const char *, int);
8374840Skenvoid	*memccpy(void *, const void *, int, size_t);
8474840Skenchar	*rindex(const char *, int);
8574840Skenint	 strcasecmp(const char *, const char *);
8674840Skenchar	*strcasestr(const char *, const char *);
8774840Skenchar	*strdup(const char *);
8874840Skenint	 strerror_r(int, char *, size_t);
8974840Skensize_t	 strlcat(char *, const char *, size_t);
90195534Sscottlsize_t	 strlcpy(char *, const char *, size_t);
91216088Skenvoid	 strmode(int, char *);
92216088Skenint	 strncasecmp(const char *, const char *, size_t);
9374840Skenchar	*strnstr(const char *, const char *, size_t);
9474840Skenchar	*strsep(char **, const char *);
9574840Skenchar	*strsignal(int);
9674840Skenchar	*strtok_r(char *, const char *, char **);
9774840Skenvoid	 swab(const void *, void *, size_t);
9874840Sken#endif
9974840Sken__END_DECLS
10074840Sken
10174840Sken#endif /* _STRING_H_ */
10274840Sken