Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_FS_1_19910112
-
c/include/string.h
There are 7 other files named string.h in the archive. Click here to see a list.
/* <STRING.H> and <STRINGS.H> - string routine declarations
**
** (c) Copyright Ken Harrenstien 1989
**
** NOTE: the two files string.h and strings.h are identical copies.
** Draft Proposed ANSI C (and CARM) require <string.h>, but BSD uses
** <strings.h>. To avoid problems with filename lengths longer than 6 chars,
** neither includes the other; they are simply identical, so it is OK if
** something asks for <strings.h> and gets <string.h> instead.
**
** Eventually, when BSD supports ANSI C, we can flush <strings.h>.
**
** The mem*() functions used to be declared in <memory.h> but ANSI has
** moved them here, so <memory.h> now just includes <string.h>.
**
** All of these functions are documented in
** CARM II (H&S v2), chap 15 and 16.
*/
#ifndef _STRING_INCLUDED
#define _STRING_INCLUDED
#ifndef __STDC__ /* Canonicalize this indicator to avoid err msgs */
#define __STDC__ 0
#endif
#ifndef _SIZE_T_DEFINED /* Avoid conflict with other headers */
#define _SIZE_T_DEFINED
typedef unsigned size_t; /* Type of sizeof() (must be unsigned, ugh) */
#endif
#define NULL 0 /* Benign redef */
#if __STDC__
/* Copying */
void *memcpy(void*, const void*, size_t); /* to, from, n */
void *memmove(void*, const void*, size_t); /* to, from, n */
char *strcpy(char*, const char*); /* to, from */
char *strncpy(char*, const char*, size_t); /* to, from, n */
/* Concatenation */
char *strcat(char*, const char*); /* to, from */
char *strncat(char*, const char*, size_t); /* to, from, n */
/* Comparison */
int memcmp(const void*, const void*, size_t); /* s1, s2, n */
int strcmp(const char*, const char*); /* s1, s2 */
int strcoll(const char*, const char*); /* s1, s2 */
int strncmp(const char*, const char*, size_t); /* s1, s2, n */
size_t strxfrm(char*, const char*, size_t); /* to, from, n */
/* Searching */
void *memchr(const void*, int, size_t); /* s, ch, n */
char *strchr(const char*, int); /* s, ch */
size_t strcspn(const char*, const char*); /* s, set */
char *strpbrk(const char*, const char*); /* s, set */
char *strrchr(const char*, int); /* s, ch */
size_t strspn(const char*, const char*); /* s, set */
char *strstr(const char*, const char*); /* s, substr */
char *strtok(char *, const char*); /* s, brkset */
/* Miscellaneous */
void *memset(void*, int, size_t); /* to, val, n */
char *strerror(int); /* errno */
size_t strlen(const char*); /* s */
/* CARM/BSD extensions */
char *index(const char*, int); /* V7/BSD name for strchr */
char *rindex(const char*, int); /* V7/BSD name for strrchr */
int strpos(const char*, int); /* CARM only! */
int strrpos(const char*, int); /* CARM only! */
char *strrpbrk(const char*, const char*); /* CARM only! */
void *memccpy(void*, const void*, int, size_t); /* S5/BSD/CARM, not in ANSI */
#else /* Old-style decls */
extern size_t strlen(), strspn(), strcspn();
extern char *strcat(), *strchr(), *index(), *strcpy(), *strncat(), *strncpy(),
*strpbrk(), *strrchr(), *rindex(), *strrpbrk(), *strtok(), *strstr(),
*strerror();
extern int
strcmp(), strncmp(), strpos(), strrpos();
extern int memcmp();
extern char *memchr(), *memcpy(), *memset(), *memmove(), *memccpy();
#endif /* not __STDC__ */
#endif /* ifndef _STRING_INCLUDED */