Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ao_string_tokenize(3)	       Programmer's Manual	   ao_string_tokenize(3)

NAME
     ao_string_tokenize - tokenize an input string

SYNOPSIS
     #include <your-opts.h>
     cc [...] -o outfile infile.c -lopts [...]

     token_list_t * ao_string_tokenize(char const * string);

DESCRIPTION
     This  function  will  convert one input string into a list of strings.  The
     list of strings is derived by separating the input  based	on  white  space
     separation.   However,  if the input contains either single or double quote
     characters, then the text after that character up to a matching quote  will
     become the string in the list.

     The  returned pointer should be deallocated with free(3C) when are done us-
     ing the data.  The data are placed in a single block of  allocated  memory.
     Do not deallocate individual token/strings.

     The structure pointed to will contain at least these two fields:

     tkn_ct The number of tokens found in the input string.

     tok_list An array of tkn_ct + 1 pointers to substring tokens, with the last
     pointer set to NULL.

     There  are two types of quoted strings: single quoted (') and double quoted
     (").  Singly quoted strings are fairly raw in that  escape  characters  (\)
     are  simply  another character, except when preceding the following charac-
     ters:
	 \  double backslashes reduce to one
	 '   incorporates the single quote into the string
	 0fP  suppresses both the backslash and newline character

     Double quote strings are formed according to the rules of string  constants
     in ANSI-C programs.

     string
	    string to be tokenized

RETURN VALUE
     pointer to a structure that lists each token

ERRORS
     NULL is returned and errno will be set to indicate the problem:

     EINVAL - There was an unterminated quoted string.

     ENOENT - The input string was empty.

     ENOMEM - There is not enough memory.  @end itemize

EXAMPLES
	      #include <stdlib.h>
	      int ix;
	      token_list_t * ptl = ao_string_tokenize(some_string)
	      for (ix = 0; ix < ptl->tkn_ct; ix++)
	      do_something_with_tkn(ptl->tkn_list[ix]);
	      free(ptl);
	  Note that everything is freed with the one call to free(3C).

SEE ALSO
     The info documentation for the -lopts library.
     configFileLoad(3),  optionFileLoad(3),  optionFindNextValue(3), optionFind-
     Value(3), optionFree(3), optionGetValue(3),  optionLoadLine(3),  optionMem-
     berList(3),  optionNextValue(3), optionOnlyUsage(3), optionPrintVersion(3),
     optionPrintVersionAndReturn(3), optionProcess(3), optionRestore(3), option-
     SaveFile(3), optionSaveState(3),  optionUnloadNested(3),  optionVersion(3),
     strequate(3), streqvcmp(3), streqvmap(3), strneqvcmp(3), strtransform(3),

				   2026-07-30		   ao_string_tokenize(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ao_string_tokenize&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help