Linux

CentOS 4.8

strtok_r(3)


STRTOK

NOM

strtok, strtok_r − Extraire des mots d’une chaîne.

SYNOPSIS

#include <string.h>

char *strtok (char *s, const char *delim);

char *strtok_r (char *s, const char *delim, char **ptrptr);

DESCRIPTION

Un élément lexical (token) est une chaîne non vide de caractères qui n’appartiennent pas à la chaîne delim, suivie de \0 ou d’un caractère appartenant à delim.

La fonction strtok() peut être utilisée pour scinder s en éléments lexicaux. Le premier appel à strtok() doit fournir s comme premier argument. Les appels ultérieurs doivent fournir NULL comme premier argument. Chaque appel renvoie un pointeur sur l’élément lexical suivant, ou NULL quand il n’y en a plus.

Si un token se termine par un délimiteur, le caractère de délimitation est surchargé par un \0 et un pointeur sur le caractère suivant est mémorisé pour l’appel suivant à strtok(). La chaîne de séparateurs delim peut être différente à chaque appel.

La fonction strtok_r() est identique à strtok() mais au lieu d’utiliser un buffer statique, elle emploie un pointeur sur un buffer "char *" alloué par l’utilisateur. Ce pointeur transmis comme paramètre ptrptr doit être toujours le même durant l’analyse d’une chaîne.

BOGUES

Ãvitez au maximum d’utiliser cette fonction. Sinon, prenez note des informations suivantes :

Cette fonction modifie son premier argument.

Les caractères de séparation sont surchargés, leur identité est donc perdue.

Cette fonction ne doit pas être invoquée sur une chaîne constante.

La fonction strtok() utilise un buffer statique et n’est donc pas sûre dans un contexte multithread. Dans ce cas il vaut mieux utiliser strtok_r().

VALEUR RENVOYÃE

La fonction strtok() renvoie un pointeur sur l’élément lexical suivant, ou NULL s’il n’y en a plus.

CONFORMITÃ

strtok ()

SVID 3, POSIX, BSD 4.3, ISO 9899

strtok_r ()

POSIX.1c

VOIR AUSSI

index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3)

TRADUCTION

Christophe Blaess, 1997.


strtok_r(3)