没有合适的资源?快使用搜索试试~ 我知道了~
Linux高级编程实验实验2报告
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 186 浏览量
2022-12-29
20:40:28
上传
评论
收藏 659KB DOC 举报
温馨提示
试读
11页
Linux高级编程实验实验2报告
资源推荐
资源详情
资源评论
1 / 11
电 子 科 技 大 学
实 验 报 告
学生姓名: 学 号: 指导教师:
实验地点:清水河主楼 实验时间:2016
一、实验室名称:
Linux 环境高级编程实验室
二、实验项目名称:
对象序列化实验
三、实验学时:
8 学时
四、实验目的:
学习序列化原理与方法,掌握基本的序列化技巧
五、实验内容:
版本 1:将一个类的一个对象序列化到文件
版本 2:将一个类的多个对象序列化到文件
版本 3:将两个类的多个对象序列化到文件
版本 4:按照面向对象的方法,解决多个类的多个对象序列
化到文件的问题
版本 5:序列化的目的地不仅可以是文件,还可以是其他,
即可配置性
2 / 11
六、实验步骤:
1、版本一程序分析:
源程序如下,功能是将一个类的一个对象(电话号码)序列化到文件:
#include <fcntl.h>
#include <iostream>
#include <vector>
#include<string.h>
class SAD
//Serialize And Deserialize
{
public:
SAD() // 构造函数。
{
tel0 = tel1 = 0; //将电话号
码分成两个 int 变量保存。
}
explicit SAD( long int m,long int k)
{
tel0 = m;tel1=k;
}
virtual ~SAD()
/*使用虚析构。在析构时防止只析构基类而不析构派生类的状况发生,
造成内存泄漏。*/
{
}
public:
void reshow () //用于打印
出变量的值。
{
std::cout << " TEL of recovery: " << tel0 <<tel1<<
std::endl;
}
public:
3 / 11
void show () //用于打印
出电话的值。
{
std::cout << " TEL before Serialize: " << tel0 <<tel1<<
std::endl;
}
public:
bool xuliehua(const char *lujing) const
/*非静态成员函数后面加了 const 的成员函数可以被非 const 对象
和 const 对象调用。*/
{
int fd = ::open(lujing, O_RDWR | O_CREAT | O_TRUNC, 0);
/*open 函数位于 fcntl.h 中。open 函数用于打开和创建文件。
pFilePath 表示 文件 名, 参数 O_RDWR 表 示以 可读 写方 式打 开文
件.O_CREAT 表示若欲打开的文件不存在则自动建立该文件.O_TRUNC
表示若文件存在并且以可写的方式打开时,此旗标会令文件长度清为
0,而原来存于该文件的资料也会消失.若所有欲核查的权限都通过了
检查则返回 0 值,表示成功,只要有一个权限被禁止则返回-1.*/
if(-1 == fd)
return false;
if((::write(fd, &tel0, sizeof(long int))) && (::write(fd,
&tel1, sizeof(long int))) == -1)
/*write 是用于向文件中写数据的函数。fd 只是一个整数,在 open
时产生。起到一个索引的作用,进程通过 PCB 中的文件描述符表找到
该 fd 所指向的文件指针 filp。从 tel0 的地址起,写入 sizeof(long
int)个字符。*/
{
::close(fd); // 释放 file
结构体。
return false;
}
if(::close(fd) == -1)
return false;
return true;
}
bool fanxuliehua(const char *lujing) //反序
列化,参数是文件名以及路径。
{
剩余10页未读,继续阅读
资源评论
文档优选
- 粉丝: 88
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功