欢迎来到天天文库
浏览记录
ID:30247700
大小:17.76 KB
页数:8页
时间:2018-12-28
《李林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"(长
此文档下载收益归作者所有