Initial revision
[kopensolaris-gnu/glibc.git] / string / string.h
1 /* Copyright (C) 1991 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 /* Get size_t and NULL from <stddef.h>.  */
29 #define __need_size_t
30 #define __need_NULL
31 #include <stddef.h>
32
33
34 /* Copy N bytes of SRC to DEST.  */
35 extern PTR EXFUN(memcpy, (PTR __dest, CONST PTR __src, size_t __n));
36 /* Copy N bytes of SRC to DEST, guaranteeing
37    correct behavior for overlapping strings.  */
38 extern PTR EXFUN(memmove, (PTR __dest, CONST PTR __src, size_t __n));
39
40 /* Copy no more than N bytes of SRC to DEST, stopping when C is found.
41    Return the position in DEST one byte past where C was copied,
42    or NULL if C was not found in the first N bytes of SRC.  */
43 extern PTR EXFUN(__memccpy, (PTR __dest, CONST PTR __src,
44                              int __c, size_t __n));
45 #ifdef  __USE_SVID
46 extern PTR EXFUN(memccpy, (PTR __dest, CONST PTR __src,
47                            int __c, size_t __n));
48 #ifdef  __OPTIMIZE__
49 #define memccpy(dest, src, c, n) __memccpy((dest), (src), (c), (n))
50 #endif  /* Optimizing.  */
51 #endif  /* SVID.  */
52
53
54 /* Set N bytes of S to C.  */
55 extern PTR EXFUN(memset, (PTR __s, int __c, size_t __n));
56
57 /* Compare N bytes of S1 and S2.  */
58 extern int EXFUN(memcmp, (CONST PTR __s1, CONST PTR __s2, size_t __n));
59
60 /* Search N bytes of S for C.  */
61 extern PTR EXFUN(memchr, (CONST PTR __s, int __c, size_t __n));
62
63
64 /* Copy SRC to DEST.  */
65 extern char *EXFUN(strcpy, (char *__dest, CONST char *__src));
66 /* Copy no more than N characters of SRC to DEST.  */
67 extern char *EXFUN(strncpy, (char *__dest, CONST char *__src, size_t __n));
68
69 /* Append SRC onto DEST.  */
70 extern char *EXFUN(strcat, (char *__src, CONST char *__dest));
71 /* Append no more than N characters from SRC onto DEST.  */
72 extern char *EXFUN(strncat, (char *__dest, CONST char *__src, size_t __n));
73
74 /* Compare S1 and S2.  */
75 extern int  EXFUN(strcmp, (CONST char *__s1, CONST char *__s2));
76 /* Compare N characters of S1 and S2.  */
77 extern int EXFUN(strncmp, (CONST char *__s1, CONST char *__s2, size_t __n));
78
79 /* Compare the collated forms of S1 and S2.  */
80 extern int EXFUN(strcoll, (CONST char *__s1, CONST char *__s2));
81 /* Put a transformation of SRC into no more than N bytes of DEST.  */
82 extern size_t EXFUN(strxfrm, (char *__dest, CONST char *__src, size_t __n));
83
84 #ifdef  __USE_SVID
85 /* Duplicate S, returning an identical malloc'd string.  */
86 extern char *EXFUN(strdup, (CONST char *__s));
87 #endif
88
89 /* Find the first occurrence of C in S.  */
90 extern char *EXFUN(strchr, (CONST char *__s, int __c));
91 /* Find the last occurrence of C in S.  */
92 extern char *EXFUN(strrchr, (CONST char *__s, int __c));
93
94 /* Return the length of the initial segment of S which
95    consists entirely of characters not in REJECT.  */
96 extern size_t EXFUN(strcspn, (CONST char *__s, CONST char *__reject));
97 /* Return the length of the initial segment of S which
98    consists entirely of characters in ACCEPT.  */
99 extern size_t EXFUN(strspn, (CONST char *__s, CONST char *__accept));
100 /* Find the first occurence in S of any character in ACCEPT.  */
101 extern char *EXFUN(strpbrk, (CONST char *__s, CONST char *__accept));
102 /* Find the first occurence of NEEDLE in HAYSTACK.  */
103 extern char *EXFUN(strstr, (CONST char *__needle, CONST char *__haystack));
104 /* Divide S into tokens separated by characters in DELIM.  */
105 extern char *EXFUN(strtok, (char *__s, CONST char *__delim));
106
107 #ifdef  __USE_GNU
108 /* Find the first occurence of NEEDLE in HAYSTACK.
109    NEEDLE is NEEDLE_LEN bytes long;
110    HAYSTACK is HAYSTACK_LEN bytes long.  */
111 extern PTR EXFUN(memmem, (PTR __needle, size_t __needle_len,
112                           PTR __haystack, size_t __haystack_len));
113 #endif
114
115 /* Return the length of S.  */
116 extern size_t EXFUN(strlen, (CONST char *__s));
117
118 /* Return a string describing the meaning of the errno code in ERRNUM.  */
119 extern char *EXFUN(strerror, (int __errnum));
120
121 #ifdef  __USE_BSD
122 /* Compare S1 and S2, ignoring case.  */
123 extern int EXFUN(strcasecmp, (CONST char *__s1, CONST char *__s2));
124 #endif
125
126 #ifdef  __USE_GNU
127 /* Return a string describing the meaning of the signal number in SIG.  */
128 extern char *EXFUN(strsignal, (int __sig));
129
130
131 /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST.  */
132 extern char *EXFUN(stpcpy, (char *__dest, CONST char *__src));
133 #endif
134
135 #endif  /* string.h  */