J'ai remarqué qu'il y avait (au moins sur Mac OS X) à la fois un en- <string.h>
tête et un en- <strings.h>
tête. man 3 string
révèle qu'ils contiennent des fonctions différentes. Y a-t-il une raison quelconque pour cela?
90
J'ai remarqué qu'il y avait (au moins sur Mac OS X) à la fois un en- <string.h>
tête et un en- <strings.h>
tête. man 3 string
révèle qu'ils contiennent des fonctions différentes. Y a-t-il une raison quelconque pour cela?
strings.h
contient des fonctions non standardbcmp bcopy bzero ffs index rindex strcasecmp strncasecmp
… et c'est tout.Réponses:
strings.h provient de la branche BSD dans l'évolution unix. Son contenu a été normalisé par POSIX, mais la plupart est marqué comme hérité et peut être facilement remplacé par d'autres fonctions:
la source
strings.h
dansstring.h
. Voir, par exemple, Glibc .En général,
<strings.h>
ajoute simplement des fonctions de chaîne supplémentaires utiles mais non standard à l'en-tête standard<string.h>
. Pour une portabilité maximale, vous ne devez utiliser que<string.h>
mais si vous avez besoin des fonctions<strings.h>
plus que ce dont vous avez besoin, vous pouvez utiliser à la<strings.h>
place de<string.h>
.la source
ffs
est peut-être utile.