当前位置:  技术问答>linux和unix

strtok的多线程实现

    来源: 互联网  发布时间:2016-11-13

    本文导语:  下面这段是vc库里strtok的源码,应该是实现了多线程的吧,但其中有些代码不明白,我在代码后做了标记 /*** *strtok.c - tokenize a string with given delimiters * *       Copyright (c) 1989-1997, Microsoft Corporation. All rights ...

下面这段是vc库里strtok的源码,应该是实现了多线程的吧,但其中有些代码不明白,我在代码后做了标记
/***
*strtok.c - tokenize a string with given delimiters
*
*       Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines strtok() - breaks string into series of token
*       via repeated calls.
*
*******************************************************************************/

#include 
#include 
#ifdef _MT
#include 
#endif  /* _MT */

/***
*char *strtok(string, control) - tokenize string with delimiter in control
*
*Purpose:
*       strtok considers the string to consist of a sequence of zero or more
*       text tokens separated by spans of one or more control chars. the first
*       call, with string specified, returns a pointer to the first char of the
*       first token, and will write a null char into string immediately
*       following the returned token. subsequent calls with zero for the first
*       argument (string) will work thru the string until no tokens remain. the
*       control string may be different from call to call. when no tokens remain
*       in string a NULL pointer is returned. remember the control chars with a
*       bit map, one bit per ascii char. the null char is always a control char.
*
*Entry:
*       char *string - string to tokenize, or NULL to get next token
*       char *control - string of characters to use as delimiters
*
*Exit:
*       returns pointer to first token in string, or if string
*       was NULL, to next token
*       returns NULL when no more tokens remain.
*
*Uses:
*
*Exceptions:
*
*******************************************************************************/

char * __cdecl strtok (
        char * string,
        const char * control
        )
{
        unsigned char *str;
        const unsigned char *ctrl = control;

        unsigned char map[32];
        int count;

#ifdef _MT
        _ptiddata ptd = _getptd();*****************************作用?????****************************
#else  /* _MT */
        static char *nextoken;
#endif  /* _MT */

        /* Clear control map */
        for (count = 0; count > 3] |= (1 > 3] & (1  3] & (1 

    
 
 

您可能感兴趣的文章:

  • Strtok_r函数的功能如何实现
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请解释函数strtok()
  • g++中strtok_s is not declear in this scope
  • 关于strtok函数
  • 请问strtok(NULL,delimits)是什么意思?
  • strtok的怪問題
  • C语言切割多层字符串(strtok_r strtok使用方法)
  • mmap后能用strtok或者srtok_r吗? iis7站长之家
  • mmap后能用strtok或者srtok_r吗?
  • strtok()问题
  • 这边也来问一下,strtok函数的返回值是什么?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3