Next: , Previous: str_tokcnt, Up: Strings   [Contents]


4.6 str_tokenize

tokenize a string at specified delimiters

Synopsis

#include <suplib/str.h>

int str_tokenize(
  char *string,
  const char *delim,
  char ***string_argv,
  int skip,
  int restore
);

Parameters

char *string

string to parse

const char *delim

the delimiters to use

char ***string_argv

to store the parsed tokens

int skip

true if consecutive delimiters are treated as a single delimiter

int restore

true if str_tokq should restore the delimiter character from the previous invocation

Description

This routine tokenizes the string using str_tokq. The invoking routine calls str_tokenize once to parse all the tokens for a given delimiter. The tokens are stored in string_argv.

if the restore argument is false, str_tokenize will allocate memory for each of the tokens; otherwise it will return pointers to the locations in the original string.

The routine str_tokenize_free is provided to free the memory allocated by str_tokenize

Returns

The number of tokens. The third argument, string_argv, contains the parsed tokens.

Errors

On error, str_tokenize returns 0 and sets errno accordingly. The following errors are recognized:

EINVAL

There were unbalanced quotes or the last character in the string was an escape character (i.e., no character to escape).

ENOMEM

A memory allocation failed

Author

Dan Nguyen

Diab Jerius