Diferencia entre string.h y strings.h
strlen c (2)
Normalmente, <strings.h>
solo agrega algunas funciones de cadena adicionales útiles pero no estándar al encabezado estándar <string.h>
. Para una portabilidad máxima, solo debe usar <string.h>
pero si necesita las funciones en <strings.h>
más de lo que necesita la portabilidad, puede usar <strings.h>
lugar de <string.h>
.
Noté que había (al menos en Mac OS X) un encabezado string.h
y un encabezado strings.h
. man 3 string
revela que contienen diferentes funciones. Hay alguna razón para esto?
strings.h proviene de la rama BSD en la evolución de Unix. Su contenido ha sido estandarizado por POSIX, pero la mayor parte está marcado como heredado y puede ser reemplazado fácilmente por otras funciones:
int bcmp(const void *, const void *, size_t); /* LEGACY, see memcmp */
void bcopy(const void *, void *, size_t); /* LEGACY, see memcpy, memmove */
void bzero(void *, size_t); /* LEGACY, see memset */
int ffs(int);
char *index(const char *, int); /* LEGACY, see strchr */
char *rindex(const char *, int); /* LEGACY, see strrchr */
int strcasecmp(const char *, const char *);
int strncasecmp(const char *, const char *, size_t);