/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


STRTOK(3P)                                          POSIX Programmer's Manual                                         STRTOK(3P)



PROLOG
       This  manual  page is part of the POSIX Programmer's Manual.  The Linux implementation of this interface may differ (con-
       sult the corresponding Linux manual page for details of Linux behavior), or the  interface  may  not  be  implemented  on
       Linux.

NAME
       strtok, strtok_r - split string into tokens

SYNOPSIS
       #include <string.h>

       char *strtok(char *restrict s1, const char *restrict s2);


       char *strtok_r(char *restrict s, const char *restrict sep,
              char **restrict lasts);


DESCRIPTION
       For  strtok():    The  functionality  described  on  this reference page is aligned with the ISO C standard. Any conflict
       between the requirements described here and the ISO C standard is  unintentional.  This  volume  of  IEEE Std 1003.1-2001
       defers to the ISO C standard.

       A  sequence of calls to strtok() breaks the string pointed to by s1 into a sequence of tokens, each of which is delimited
       by a byte from the string pointed to by s2. The first call in the sequence has s1 as its first argument, and is  followed
       by  calls  with a null pointer as their first argument.  The separator string pointed to by s2 may be different from call
       to call.

       The first call in the sequence searches the string pointed to by s1 for the first byte that is not contained in the  cur-
       rent separator string pointed to by s2. If no such byte is found, then there are no tokens in the string pointed to by s1
       and strtok() shall return a null pointer. If such a byte is found, it is the start of the first token.

       The strtok() function then searches from there for a byte that is contained in the current separator string. If  no  such
       byte  is  found, the current token extends to the end of the string pointed to by s1, and subsequent searches for a token
       shall return a null pointer. If such a byte is found, it is overwritten by a null  byte,  which  terminates  the  current
       token. The strtok() function saves a pointer to the following byte, from which the next search for a token shall start.

       Each subsequent call, with a null pointer as the value of the first argument, starts searching from the saved pointer and
       behaves as described above.

       The implementation shall behave as if no function defined in this volume of IEEE Std 1003.1-2001 calls strtok().

       The strtok() function need not be reentrant. A function that is not required to  be  reentrant  is  not  required  to  be
       thread-safe.

       The  strtok_r()  function  considers  the null-terminated string s as a sequence of zero or more text tokens separated by
       spans of one or more characters from the separator string sep.  The argument lasts  points  to  a  user-provided  pointer
       which points to stored information necessary for strtok_r() to continue scanning the same string.

       In the first call to strtok_r(), s points to a null-terminated string, sep to a null-terminated string of separator char-
       acters, and the value pointed to by lasts is ignored.  The strtok_r() function shall return a pointer to the first  char-
       acter  of the first token, write a null character into s immediately following the returned token, and update the pointer
       to which lasts points.

       In subsequent calls, s is a NULL pointer and lasts shall be unchanged from the previous call  so  that  subsequent  calls
       shall move through the string s, returning successive tokens until no tokens remain. The separator string sep may be dif-
       ferent from call to call. When no token remains in s, a NULL pointer shall be returned.

RETURN VALUE
       Upon successful completion, strtok() shall return a pointer to the first byte of a  token.  Otherwise,  if  there  is  no
       token, strtok() shall return a null pointer.

       The strtok_r() function shall return a pointer to the token found, or a NULL pointer when no token is found.

ERRORS
       No errors are defined.

       The following sections are informative.

EXAMPLES
   Searching for Word Separators
       The following example searches for tokens separated by <space>s.


              #include <string.h>
              ...
              char *token;
              char *line = "LINE TO BE SEPARATED";
              char *search = " ";


              /* Token will point to "LINE". */
              token = strtok(line, search);


              /* Token will point to "TO". */
              token = strtok(NULL, search);

   Breaking a Line
       The  following example uses strtok() to break a line into two character strings separated by any combination of <space>s,
       <tab>s, or <newline>s.


              #include <string.h>
              ...
              struct element {
                  char *key;
                  char *data;
              };
              ...
              char line[LINE_MAX];
              char *key, *data;
              ...
              key = strtok(line, "    \n");
              data = strtok(NULL, "   \n");
              ...

APPLICATION USAGE
       The strtok_r() function is thread-safe and stores its state in a user-supplied buffer instead of possibly using a  static
       data area that may be overwritten by an unrelated call from another thread.

RATIONALE
       The  strtok() function searches for a separator string within a larger string. It returns a pointer to the last substring
       between separator strings. This function uses static storage to keep track of the current string position between  calls.
       The new function, strtok_r(), takes an additional argument, lasts, to keep track of the current position in the string.

FUTURE DIRECTIONS
       None.

SEE ALSO
       The Base Definitions volume of IEEE Std 1003.1-2001, <string.h>

COPYRIGHT
       Portions  of  this  text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Standard for
       Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6,  Copy-
       right (C) 2001-2003 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any
       discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open  Group
       Standard   is   the   referee   document.   The   original   Standard   can   be   obtained  online  at  http://www.open-
       group.org/unix/online.html .



IEEE/The Open Group                                           2003                                                    STRTOK(3P)

Valid XHTML 1.0!Valid CSS!