- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
Linux程序设计环境CH11Linux程序设计III数据管理
回顾在终端进行用户交互使用curses函数库开发基于文本的屏幕
本章目标动态内存管理文件锁定dbm数据库
内存管理内存管理Linux是类Unix的操作系统,同样实现了X/Open规范,具备以下特点:以简洁、高效的方式管理内存不允许程序直接访问物理内存(一些特殊的嵌入式程序除外)良好的内存保护机制支持虚拟内存
内存管理内存管理——简单内存分配Linux中使用标准C语言函数库中的malloc调用来分配内存。函数原型为:使用范例#includestdlib.hvoid*malloc(size_tsize);
内存管理内存管理——请求全部物理内存
内存管理内存管理——滥用内存
内存管理内存管理——空指针
内存管理内存管理——释放内存释放内存通过free函数来实现,函数原型为:#includestdlib.hvoidfree(void*ptr_tomemory)
内存管理内存管理——其他内存分配函数另外两个和动态内存管理相关的函数为calloc和realloc,其原型为:其中calloc函数主要用于给结构数组进行内存空间的分配,且使用calloc函数分配的内存空间会初始化为0。realloc函数用于重新分配内存空间。#includestdlib.hvoid*calloc(size_tnumber_of_elements,size_telement_size)void*realloc(void*existing_memory,size_tnew_size);
文件锁定文件锁定不同程序之间经常需要共享数据,在操作系统层面是通过文件来实现的,因此文件锁定是多用户、多任务操作系统中一个重要的组成部分。Linux系统中提供了多种特性来实现文件锁定,主要有下面两种:锁文件:利用原子操作创建锁文件;区域锁定。
文件锁定文件锁定——创建锁文件Linux中创建锁文件的方式是:使用open系统调用,同时带上O_CREATE和O_EXCL标志,从而实现以一个原子操作同时完成确定文件是否存在和创建文件两项工作。
文件锁定文件锁定——区域锁定创建锁文件的方式适合建立单一设备的建议性的锁,针对大型的共享文件需要用到区域锁定。Linux中可以通过fcntl系统调用来实现区域锁定,其原型为:fcntl对一个打开的文件描述符进行操作,并根据command参数完成不同的任务,command命令包含:F_GETLK:查看文件中某个区域的当前锁状态;F_SETLK:给文件中指定的区域进行加锁或解锁;F_SETLKW:和上一个类似,区别在于如果失败会一直尝试。#includefcntl.hintfcntl(intfildes,intcommand,...);intfcntl(intfildes,intcommand,structflock*f)
文件锁定文件锁定——区域锁定1.头文件和变量声明
文件锁定文件锁定——区域锁定2.打开一个文件描述符3.给文件添加一些数据
文件锁定文件锁定——区域锁定4.把文件的10-30字节设为区域1,并设置共享锁5.把文件的40-50字节设为区域2,并设置独占锁
文件锁定文件锁定——区域锁定6.锁定文件
dbm数据库dbm数据库——简介所有版本的Linux以及大多数的Unix版本都随系统附带一个基本的、高效的数据存储程序——dbm数据库。使用RPM的Linux发行版本、LDAP的开源实现、Apache等都是使用dbm作为数据库的。dbm数据库的版本可以分为dbm、ndbm和gdbm三种。dbm是一个基于索引的数据库。
dbm数据库dbm数据库——访问函数1.dbm_open():用于打开已有数据库或者创建数据库。2.dbm_store():将数据存储到数据库。3.dbm_fetch():从数据库中检索数据。4.dbm_close():关闭用dbm_open()打开的数据库。
dbm数据库dbm数据库——使用范例1.头文件、声明及定义。
dbm数据库dbm数据库——使用范例2.一些结构的定义。
dbm数据库dbm数据库——使用范例3.打开测试数据库。
dbm数据库dbm数据库——使用范例4.添加数据到结构体。
dbm数据库dbm数据库——使用范例5.设置索引关键字,然后存储到数据库。
dbm数据库dbm数据库——使用范例6.检索数据,然后关闭数据库。
dbm数据库dbm数据库——其他函数1.dbm_delete():从数据库删除数据项。2.dbm_error():测试是否发生错误。3.dbm_clearerr():清除已被置位的错误标志。4.dbm_firstkey()和db
您可能关注的文档
- 音乐欣赏:音乐故事片、音乐纪录片.ppt
- 饲料学:第十三章 配合饲料与配方技术.pptx
- 个险营业部经理晋升培训—成功分享.ppt
- 模拟电子技术基础:半导体三极管及放大电路基础.ppt
- 模拟电子技术基础:第2章 运算放大器.ppt
- 生物统计学与试验设计:抽样分布.ppt
- 细胞与分子生物学:第四章 细胞质膜.ppt
- Linux程序开发环境:Linux程序设计 数据库访问和make命令.pptx
- 动物生物化学:第12章 物质代谢的联系与调节.ppt
- 动物生物化学:第14章 RNA的生物合成—转录.ppt
- 开学升旗仪式教师发言稿(精选5篇).pdf
- 河北省邢台市部分重点高中2023-2024学年高二上学期1月期末英语试题.pdf
- 教师资格之中学生物学科知识与教学能力题库练习模考A卷带答案.pdf
- 广东省茂名市2024学年英语高三上期末达标测试试题含解析.pdf
- 智慧树《创新性思维及方法》单元检测及答案解析.pdf
- 常识化颠覆常识本身.pdf
- 心理的演讲稿(通用6篇).pdf
- 海南省琼中黎族苗族自治县琼中中学2023-2024学年高二下学期3月月考语文试题(含答案).pdf
- 年度上学期北师大版五年级上册语文教学计划(通用3篇).pdf
- 必刷卷03-2023年高考高效提分物理考前信息必刷卷(福建专用).pdf
最近下载
- 中医妇科特色疗法之穴位贴敷疗法PPT.pptx
- 《无障碍设施施工验收及维护规范》(GB50642—2011)的解读.pdf VIP
- 初中化学第二单元《我们周围的空气》作业设计.docx
- 04-2024黄河流域生态保护和高质量发展-东营公需.docx
- 人教版九年级下册《语文》核心素养全册教案.pdf
- 贵州省施秉县恒盛有限公司36×39000kVA110kV工业硅冶炼炉年产90万t工业硅升级改造项目环境影响报告书简本.doc VIP
- 广东花城版七年级音乐教学计划(通用10篇).doc
- 二年级上册数学教材分析.pdf
- 基因工程___电子版.doc
- 蚌埠医学院第一附属医院临床医学研究伦理会审查批件.doc
文档评论(0)