Formerly ../string/string.h.~9~
[kopensolaris-gnu/glibc.git] / string / string.h
1 /* Copyright (C) 1991, 1992 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
3
4 The GNU C Library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public License as
6 published by the Free Software Foundation; either version 2 of the
7 License, or (at your option) any later version.
8
9 The GNU C Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public
15 License along with the GNU C Library; see the file COPYING.LIB.  If
16 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
17 Cambridge, MA 02139, USA.  */
18
19 /*
20  *      ANSI Standard: 4.11 STRING HANDLING     <string.h>
21  */
22
23 #ifndef _STRING_H
24
25 #define _STRING_H       1
26 #include <features.h>
27
28 #ifdef  __cplusplus
29 extern "C" {
30 #endif
31
32 /* Get size_t and NULL from <stddef.h>.  */
33 #define __need_size_t
34 #define __need_NULL
35 #include <stddef.h>
36
37
38 /* Copy N bytes of SRC to DEST.  */
39 extern PTR EXFUN(memcpy, (PTR __dest, CONST PTR __src, size_t __n));
40 /* Copy N bytes of SRC to DEST, guaranteeing
41    correct behavior for overlapping strings.  */
42 extern PTR EXFUN(memmove, (PTR __dest, CONST PTR __src, size_t __n));
43
44 /* Copy no more than N bytes of SRC to DEST, stopping when C is found.
45    Return the position in DEST one byte past where C was copied,
46    or NULL if C was not found in the first N bytes of SRC.  */
47 extern PTR EXFUN(__memccpy, (PTR __dest, CONST PTR __src,
48                              int __c, size_t __n));
49 #if defined (__USE_SVID) || defined (__USE_BSD)
50 extern PTR EXFUN(memccpy, (PTR __dest, CONST PTR __src,
51                            int __c, size_t __n));
52 #ifdef  __OPTIMIZE__
53 #define memccpy(dest, src, c, n) __memccpy((dest), (src), (c), (n))
54 #endif  /* Optimizing.  */
55 #endif  /* SVID.  */
56
57
58 /* Set N bytes of S to C.  */
59 extern PTR EXFUN(memset, (PTR __s, int __c, size_t __n));
60
61 /* Compare N bytes of S1 and S2.  */
62 extern int EXFUN(memcmp, (CONST PTR __s1, CONST PTR __s2, size_t __n));
63
64 /* Search N bytes of S for C.  */
65 extern PTR EXFUN(memchr, (CONST PTR __s, int __c, size_t __n));
66
67
68 /* Copy SRC to DEST.  */
69 extern char *EXFUN(strcpy, (char *__dest, CONST char *__src));
70 /* Copy no more than N characters of SRC to DEST.  */
71 extern char *EXFUN(strncpy, (char *__dest, CONST char *__src, size_t __n));
72
73 /* Append SRC onto DEST.  */
74 extern char *EXFUN(strcat, (char *__src, CONST char *__dest));
75 /* Append no more than N characters from SRC onto DEST.  */
76 extern char *EXFUN(strncat, (char *__dest, CONST char *__src, size_t __n));
77
78 /* Compare S1 and S2.  */
79 extern int  EXFUN(strcmp, (CONST char *__s1, CONST char *__s2));
80 /* Compare N characters of S1 and S2.  */
81 extern int EXFUN(strncmp, (CONST char *__s1, CONST char *__s2, size_t __n));
82
83 /* Compare the collated forms of S1 and S2.  */
84 extern int EXFUN(strcoll, (CONST char *__s1, CONST char *__s2));
85 /* Put a transformation of SRC into no more than N bytes of DEST.  */
86 extern size_t EXFUN(strxfrm, (char *__dest, CONST char *__src, size_t __n));
87
88 #if defined (__USE_SVID) || defined (__USE_BSD)
89 /* Duplicate S, returning an identical malloc'd string.  */
90 extern char *EXFUN(strdup, (CONST char *__s));
91 #endif
92
93 /* Find the first occurrence of C in S.  */
94 extern char *EXFUN(strchr, (CONST char *__s, int __c));
95 /* Find the last occurrence of C in S.  */
96 extern char *EXFUN(strrchr, (CONST char *__s, int __c));
97
98 /* Return the length of the initial segment of S which
99    consists entirely of characters not in REJECT.  */
100 extern size_t EXFUN(strcspn, (CONST char *__s, CONST char *__reject));
101 /* Return the length of the initial segment of S which
102    consists entirely of characters in ACCEPT.  */
103 extern size_t EXFUN(strspn, (CONST char *__s, CONST char *__accept));
104 /* Find the first occurence in S of any character in ACCEPT.  */
105 extern char *EXFUN(strpbrk, (CONST char *__s, CONST char *__accept));
106 /* Find the first occurence of NEEDLE in HAYSTACK.  */
107 extern char *EXFUN(strstr, (CONST char *__haystack, CONST char *__needle));
108 /* Divide S into tokens separated by characters in DELIM.  */
109 extern char *EXFUN(strtok, (char *__s, CONST char *__delim));
110
111 #ifdef  __USE_GNU
112 /* Find the first occurence of NEEDLE in HAYSTACK.
113    NEEDLE is NEEDLE_LEN bytes long;
114    HAYSTACK is HAYSTACK_LEN bytes long.  */
115 extern PTR EXFUN(memmem, (PTR __needle, size_t __needle_len,
116                           PTR __haystack, size_t __haystack_len));
117 #endif
118
119 /* Return the length of S.  */
120 extern size_t EXFUN(strlen, (CONST char *__s));
121
122 /* Return a string describing the meaning of the errno code in ERRNUM.  */
123 extern char *EXFUN(strerror, (int __errnum));
124
125 #ifdef  __USE_BSD
126 /* Find the first occurrence of C in S (same as strchr).  */
127 extern char *EXFUN(index, (CONST char *__s, int __c));
128
129 /* Find the last occurrence of C in S (same as strrchr).  */
130 extern char *EXFUN(rindex, (CONST char *__s, int __c));
131
132 /* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
133 extern void EXFUN(bcopy, (CONST PTR __src, PTR __dest, size_t __n));
134
135 /* Set N bytes of S to 0.  */
136 extern void EXFUN(bzero, (PTR __s, size_t __n));
137
138 /* Compare N bytes of S1 and S2 (same as memcmp).  */
139 extern int EXFUN(bcmp, (CONST PTR __s1, CONST PTR __s2, size_t __n));
140
141 /* Return the position of the first bit set in I, or 0 if none are set.
142    The least-significant bit is position 1, the most-significant 32.  */
143 extern int EXFUN(ffs, (int __i));
144
145 #if     defined(__GNUC__) && defined(__OPTIMIZE__)
146 #define ffs()   __builtin_ffs()
147 #endif  /* GCC and optimizing.  */
148
149 /* Compare S1 and S2, ignoring case.  */
150 extern int EXFUN(strcasecmp, (CONST char *__s1, CONST char *__s2));
151
152 /* Return the next DELIM-delimited token from *STRINGP,
153    terminating it with a '\0', and update *STRINGP to point past it.  */
154 extern char *EXFUN(strsep, (char **__stringp, CONST char *__delim));
155 #endif
156
157 #ifdef  __USE_GNU
158 /* Compare no more than N chars of S1 and S2, ignoring case.  */
159 extern int EXFUN(strncasecmp, (CONST char *__s1, CONST char *__s2,
160                                size_t __n));
161
162 /* Return a string describing the meaning of the signal number in SIG.  */
163 extern char *EXFUN(strsignal, (int __sig));
164
165 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
166 extern char *EXFUN(stpcpy, (char *__dest, CONST char *__src));
167 #endif
168
169 #ifdef  __cplusplus
170 }
171 #endif
172
173 #endif  /* string.h  */