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 dou-
       ble quote characters, then the text after that character	up to a	match-
       ing quote will become the string	in the list.

       The  returned pointer should be deallocated with	free(3C) when are done
       using 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 char-
       acters (\) are simply another character,	except when preceding the fol-
       lowing characters:
	   \  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 con-
       stants 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),  option-
       FindValue(3),  optionFree(3), optionGetValue(3),	optionLoadLine(3), op-
       tionMemberList(3), optionNextValue(3), optionOnlyUsage(3), optionPrint-
       Version(3), optionPrintVersionAndReturn(3), optionProcess(3), optionRe-
       store(3), optionSaveFile(3), optionSaveState(3),	optionUnloadNested(3),
       optionVersion(3),     strequate(3),     streqvcmp(3),	 streqvmap(3),
       strneqvcmp(3), strtransform(3),

				  2021-02-28		 ao_string_tokenize(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | EXAMPLES | SEE ALSO

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

home | help