• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

C++的流basic_streambuf

发布: 2008-4-22 18:25 | 作者: 不详 | 来源: http://dev.csdn.net/author/linweixuan/index.html | 查看: 157次 | 进入软件测试论坛讨论

领测软件测试网 关键字:basic_streambufC++的流basic_streambuf
不是个抽象类,但是他是C++流的基类.它提供了基本的缓冲区管理.它包含六个缓存区指针,三个分别是读指针(开头,结尾,当前),另外三个是写指针(开头,结尾,当前)
 
    读开始指针                            当前读指针                                    读结尾指针
_M_gbegin                          _M_gnext                      _M_gend
         
         =========================================================     
              ^                                                      ^                                              ^
       _M_pbegin                          _M_pnext                      _M_pend
           写开始指针                            当前写指针                           写结尾指针
 
template <class_CharT, class_Traits>
classbasic_streambuf
{
 friendclassbasic_istream<_CharT, _Traits>;
 friendclassbasic_ostream<_CharT, _Traits>;
public:                         // Typedefs.
 typedef_CharT                   char_type;
 typedeftypename_Traits::int_type        int_type;
 typedeftypename_Traits::pos_type     pos_type;
 typedeftypename_Traits::off_type       off_type;
 typedef_Traits                    traits_type;
 
public:                         // Destructor.
 virtual ~basic_streambuf() {}
 
public:                         // Locale-related functions.
 localepubimbue(constlocale& __loc) {
    this->imbue(__loc);
    locale__tmp = _M_locale;
    _M_locale = __loc;
    return__tmp;
 }
 localegetloc() const { return_M_locale; }
 
public:                         // Buffer management.
 //设置缓冲区和长度
 basic_streambuf* pubsetbuf(char_type* __s, streamsize__n) 
    { returnthis->setbuf(__s, __n); }
 
 //设置缓冲区偏移量,简单调用seekoff()函数
 pos_typepubseekoff(off_type__offset, ios_base::seekdir__way,
                      ios_base::openmode__mod = ios_base::in | ios_base::out)
    { returnthis->seekoff(__offset, __way, __mod); }
//设置缓冲区位置,简单调用seekpos()函数
 pos_typepubseekpos(pos_type__sp,
                      ios_base::openmode__mod = ios_base::in | ios_base::out)
    { returnthis->seekpos(__sp, __mod); }
 
//放置缓冲区同步,简单调用sync()函数
 intpubsync() { returnthis->sync(); }

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: basic streambuf

41/41234>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网