李林linux环境高级编程,作业,实验报告

李林linux环境高级编程,作业,实验报告

ID:30247700

大小:17.76 KB

页数:8页

时间:2018-12-28

李林linux环境高级编程,作业,实验报告_第1页
李林linux环境高级编程,作业,实验报告_第2页
李林linux环境高级编程,作业,实验报告_第3页
李林linux环境高级编程,作业,实验报告_第4页
李林linux环境高级编程,作业,实验报告_第5页
资源描述:

《李林linux环境高级编程,作业,实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划李林linux环境高级编程,作业,实验报告  电子科技大学  实验报告  学生姓名:学号:指导教师:李林实验地点:清水河主楼A2-412实验时间:  一、实验室名称:  Linux环境高级编程实验室  二、实验项目名称:  对象序列化实验  三、实验学时:  8学时  四、实验目的:  学习序列化原理与方法,掌握基本的序列化技巧  五、实验内容:  ?版本1:将一个类的一个对象序列化到文件  ?版本2:将一个类的多个对象序列化

2、到文件  ?版本3:将两个类的多个对象序列化到文件  ?版本4:按照面向对象的方法,解决多个类的多个对象序列化到文件的问题目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  ?版本5:序列化的目的地不仅可以是文件,还可以是其他,即可配置性  六、实验步骤:  1、版本一程序分析:  源程序如下,功能是将一个类的一个对象序列化到文件:#include 

3、 #include  #include  #include  classSAD//SerializeAndDeserialize{  public:  SAD()//构造函数。  {  tel0=tel1=0;//将电话号码分成两个int变量保存。}  explicitSAD(longintm,longintk)  {  tel0=m;tel1=k;  }  virtual~SAD()  /*使用虚析构。在析构时防止只析构基类而不析构派生类的状况发生,造成内存泄漏。*/{  }  public:目的-通过该培训员工可对保安行业有初步了解

4、,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  voidreshow()//用于打印出变量的值。{  std::cout0){  r=read(_fd,m_pBuffer,length);  if(r==-1){  coutBUFFER_SIZE){  if(_fd==-1)return-1;  intw=write(_fd,pstrMsg,len_strmsg);  if(w==-1)

5、return-1;  returnw;  }  if(len_strmsg>m_nleftroom){  if(Flush()==-1)return-1;  }  memcpy(m_pBuffer+m_nUsedBytesForBuffer,pstrMsg,len_strmsg);  m_nUsedBytesForBuffer+=len_strmsg;  if(pthread_mutex_unlock(m_pMutex)!=0)return-1;  return0;  }  为保证读写缓存的一致性,在读写操作中,都先对缓存进行互斥量加锁

6、,操作结束后进行解锁。目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  最后我们来看看缓存的刷新操作是如何实现的。同样需要对缓存进行互斥量的加锁,保证其一致性。刷新的主要工作就是将缓存中的数据写入到文件中。操作结束后进行互斥量解锁操作,刷新成功返回写入的数据长度,否则返回-1。intEXFileOperator::Flush(){  if(pthr

7、ead_mutex_lock(m_pMutex)!=0)return-1;  intw=write(_fd,m_pBuffer,m_nUsedBytesForBuffer);  …  m_nUsedBytesForBuffer=0;  if(pthread_mutex_unlock(m_pMutex)!=0)return-1;  returnw;  }  四、测试  1.首先测试对文件进行写操作的功能实现,根据策略,先写入少量信息,即数据长度小于缓存长度时,查看数据是在文件中还是在缓存中。测试代码如下:  intmain(){  EXF

8、ileOperator*Opt=newEXFileOperator("");  Opt->F_WRITE("ZHAOQIANGXX");  }  测试代码(1)想要向文件中写入"ZHAOQIANGXX"(长

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。