POSIX文件及目录管理
来源:互联网 发布:知乎 漂亮的av 编辑:程序博客网 时间:2024/05/22 15:21
□□实验5.2.5 文件定位用lseek()函数实现以下功能
1.获取文件大小
2.为文件添加指定长度的空洞
3.在指定位置写入指定内容
4.读出指定位置的内容
程序代码:
程序测试:
程序分析:用lseek();函数定位到文件末尾后40bit的位置写入abc,添加了40bit的空洞;用lseek();函数定位到文件开头后20 bit的位置写入lalala。
□实验5.3.2 scandir
用scandir()读取目录内容。只显示以字母开头的文件。
程序代码:
程序测试:
程序分析:
参考网站:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=14949191&id=4786163
□□实验5.2.7映射文件到内存
示例程序: mmap_file_and_insert.c
1.运行示例程序。给出运行结果及分析。
2.用映射文件到内存的方式实现以下功能:
a)删除文件中的指定内容。
b)允许用户输入需要被删除的位置。
程序1测试:
程序1分析:
将文件hello传入,用lseek();函数获得文件的大小,再定位到文件末尾添加大小为1~2倍页的大小,在空闲末尾写入内容,将文件内容映射到内存,输入添加内容,输入添加内容的位置,用memmove函数移动要添加位置后面的所有信息,用mecpy函数再将添加内容加入,msync函数写回磁盘,关闭映射,截断文件,将多余空间删除。
程序2代码:
程序2测试:
程序分析:
映射到内存,再用memmove函数覆盖想要删除的部分,最后写回磁盘,关闭映射。
★★实验5.2.8-2死锁
1.用fcntl()对文件进行锁操作,模拟一个死锁的局面。
2.给出程序运行结果及分析。
程序分析:
Lock_1文件先在开头设置长度为10的写锁,若写不成功则等待,sleep 10秒,再在文件开头偏移20的位置设置长度为10的写锁,若写不成功则等待,sleep 10 秒。
Lock_2文件相反设置,两文件同时运行,测试能否写入成功。
程序测试:
第一个加锁文件代码(lock_1):
第二个加锁文件代码(lock_2):
测试结果:
测试结果并不像预期一样,可能是Linux排除了死锁的情况。
- POSIX文件及目录管理
- POSIX文件及目录管理
- POSIX文件及目录管理
- 文件及目录管理 POSIX C
- ANSI文件IO管理以及POSIX文件及目录管理
- Linux 程序设计学习笔记----POSIX 文件及目录管理
- 文件及目录管理
- POSIX标准与目录管理
- linux文件及目录管理
- java 文件及目录管理
- Linux文件及目录管理
- 文件目录分析及文件管理命令
- Linux文件管理及目录操作
- linux文件管理模式及目录管理操作
- linux文件及目录命令管理
- linux命令-文件及目录管理
- linux文件目录结构,及用户管理
- linux下的文件及目录管理
- 利用系统控件集合实现自定义view(自定义菜单)
- 提高设计水平的几个小技巧
- 解决Eclipse无法打开“Failed to load the JNI shared library”
- ef连接mysql 数据库
- Rethinking Atrous Convolution for Semantic Image Segmentation读书笔记
- POSIX文件及目录管理
- js打印jsp获取html页面
- Spring-boot整合Quartz,3、动态配置定时任务
- 重建(重新组织)索引的存储过程
- 低薪和高薪能力上的差别在哪里
- php socket客户端
- xml转换数组
- 一些Oracle的语句
- 内部优化的 自动轮播 Viewpager