教材7.8章读书笔记
教材7/8章读书笔记
by 20201321 周慧琳
学习目标
第七章:文件操作
第七章主要是关于操作系统中的各种操作级别:文件存储准备存储设备,内核中的文件系统支持函数、系统调用、文件流上的I/O函数、用户命令和各种操作sh脚本。描述了各种操作,包括从用户空间的文件流读/写到内核空间的系统分区表的示例程序、文件系统的格式化分区以及挂载磁盘分区。
第八章:使用系统调用进行文件操作
- 第八章解释了系统调用的作用和Linux的在线手册页【这部分和娄老师上课重点要求我们掌握的内容是有重叠的】
- 展示了如何使用系统调用进行文件操作,列举并解释了文件操作中最常用的系统调用,阐明了硬链接和符号链接文件,具体解释了系统调用,基于stat信息,开发了一个类似于ls的程序来显示目录内容和文件信息,接着讲解了open-close-lseek系统调用和文件描述符;然后展示了如何使用读写系统调用来读写文件内容;
- 在此基础上,说明了如何使用系统调用来显示和复制文件;还演示了如何开发选择性文件复制程序,其行为类似于一个简化的Linux dd实用程序。
详细知识点的归纳
学习收获和心得
- 这部分和娄老师上课讲的内容密切相关,通过看书我能够建立更加完整的知识框架,尤其是之前对“系统调用”所涉及的概念有所混淆,通过娄老师的上课内容我觉得通过一个C程序文件可以算是系统调用,后来发现常用Linux系统命令这些也是系统调用,而sh脚本也是系统调用,并且书上说比写C程序更方便,之后需要进一步对sh脚本进行实践
- stat结构体
struct stat{
dev_t st_dev ; / * device * /
ino_t st_ino; / * inode * /
mode_t st_mode; / * protection */
nlink_t st_nlink ; /* number of hard links * /
uid_t st_uid; / * user ID of owner * /
gid_t st_gid; / *group ID of owner */
dev_t st_rdev; /* device type (if inode device)*/
off_t st_size; /* total size, in bytes * /
u32 st_blksize; / * blocksize for filesystem
I/O */
u32 st_blocks; / *number of blocks allocated*/
time_t st_atime; / * time of last access */
time_t st_mtime; /* time of last modification */
time_t st_ctime; /* time of last change * /
};
通过系统调用实现文件复制
一开始出现错误,发现是fopen的路径写错了,还是把txt文件放在和代码同一文件夹下比较方便操作
posted on 2022-09-25 19:41 20201321周慧琳 阅读(15) 评论(0) 编辑 收藏 举报