string.h revision 1.21
1/*	$NetBSD: string.h,v 1.21 1999/12/22 21:26:19 kleink Exp $	*/
2
3/*-
4 * Copyright (c) 1990, 1993
5 *	The Regents of the University of California.  All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 * 3. All advertising materials mentioning features or use of this software
16 *    must display the following acknowledgement:
17 *	This product includes software developed by the University of
18 *	California, Berkeley and its contributors.
19 * 4. Neither the name of the University nor the names of its contributors
20 *    may be used to endorse or promote products derived from this software
21 *    without specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 * SUCH DAMAGE.
34 *
35 *	@(#)string.h	8.1 (Berkeley) 6/2/93
36 */
37
38#ifndef _STRING_H_
39#define	_STRING_H_
40#include <machine/ansi.h>
41
42#ifdef	_BSD_SIZE_T_
43typedef	_BSD_SIZE_T_	size_t;
44#undef	_BSD_SIZE_T_
45#endif
46
47#include <null.h>
48
49#include <sys/cdefs.h>
50#include <sys/featuretest.h>
51
52__BEGIN_DECLS
53void	*memchr __P((const void *, int, size_t));
54int	 memcmp __P((const void *, const void *, size_t));
55void	*memcpy __P((void *, const void *, size_t));
56void	*memmove __P((void *, const void *, size_t));
57void	*memset __P((void *, int, size_t));
58char	*strcat __P((char *, const char *));
59char	*strchr __P((const char *, int));
60int	 strcmp __P((const char *, const char *));
61int	 strcoll __P((const char *, const char *));
62char	*strcpy __P((char *, const char *));
63size_t	 strcspn __P((const char *, const char *));
64__aconst char *strerror __P((int));
65size_t	 strlen __P((const char *));
66char	*strncat __P((char *, const char *, size_t));
67int	 strncmp __P((const char *, const char *, size_t));
68char	*strncpy __P((char *, const char *, size_t));
69char	*strpbrk __P((const char *, const char *));
70char	*strrchr __P((const char *, int));
71size_t	 strspn __P((const char *, const char *));
72char	*strstr __P((const char *, const char *));
73char	*strtok __P((char *, const char *));
74#if (!defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
75     !defined(_XOPEN_SOURCE)) || defined(_REENTRANT) || \
76    (_POSIX_C_SOURCE - 0 >= 199506L) || (_XOPEN_SOURCE - 0 >= 500)
77char	*strtok_r __P((char *, const char *, char **));
78#endif /* !defined(_ANSI_SOURCE) || defined(_REENTRANT) || ... */
79size_t	 strxfrm __P((char *, const char *, size_t));
80
81#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) || \
82    defined(_XOPEN_SOURCE)
83void	*memccpy __P((void *, const void *, int, size_t));
84char	*strdup __P((const char *));
85#endif /* !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) */
86
87#if !defined(_ANSI_SOURCE) && !defined(_POSIX_C_SOURCE) && \
88    !defined(_XOPEN_SOURCE)
89#include <strings.h>		/* for backwards-compatibilty */
90size_t	 strlcat __P((char *, const char *, size_t));
91size_t	 strlcpy __P((char *, const char *, size_t));
92char	*strsep __P((char **, const char *));
93#endif /* !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE) && ... */
94__END_DECLS
95
96#endif /* !defined(_STRING_H_) */
97