教材知识点总结:
1.共享文件
典型的打开文件的内核数据结构:
2.连接i/o设备
USB总线
图形卡(配适器)
主机总线配适器
3.
文件:每个Linux文件都有一个类型来表明他在系统中的角色:
-
普通文件包含任意数据
应用程序常常要区分文本文件和二进制文件
文本文件:是只含有ASCII或Unicode字符的普通文件
二进制文件:其他所有文件
-
目录:是包含一组链接的文件
-
套接字:是用来与另一个进程进行跨网络通信的文件
4.man 3——函数
man 2——系统调用
man 1——命令
man -k xxx,查找功能
man -k xxx | grep xxx,精确查找 vi xxx,若显示乱码则说明为二进制文件
5.
打开文件:
int open(char *filename,int flags,mode_t mode)
- flags参数指明了进程打算如何访问这个文件:
O_RDONLY:只读;
O_WRONLY:只写;
O_RDWD:可读可写
注意O_RDONLY|O_WRONLY和O_RDWD不相同。
- mode参数指定了新文件的访问权限位。
文件夹权限0777表示用户、用户组的成员和其他人可读可写可执行。
7转化为二进制111,分别对应读、写、操作。
- 关闭文件
- int close(int fd)
若成功则为0,若出错则为-1.
关闭一个已关闭的描述符会出错。
6.
who命令:
who命令用于显示目前登录系统的用户信息。
c语言实现who命令的学习,我是参考博客:Linux下who命令之C语言实现进行学习的。
7.
系统级I/O
-
输入/输出(I/O)是在主存和外部设备之间拷贝数据的过程,输入操作是从I/O设备拷贝数据到主存,输出操作是从主存拷贝数据到I/O设备。
Unix I/O
- I/O设备:网络、磁盘和终端
- 描述符:打开文件时,内核返回一个小的非负整数。
- Unix外壳创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0)、标准输出(描述符为1)、标准错误(描述符为2)。
- 改变当前的文件位置:文件位置为k,初始为0。
- seek操作:显式地设置文件的当前位置为k。
-关闭文件:内核释放文件打开时创建的数据结构,并将这个描述符恢复到可用的描述符池中。无论一个进程因为何种原因终止时,内核都会关闭所有打开的文件并释放它们的存储器资源。
上周错题总结
- 错题1:
有关高速缓存的说法正确的是()
A .
高速缓存的容量可以用C=SEB 来计算
B .
高速缓存容量为2048,高速缓存结构为( 32 ,8,8,32)
C .
直接映射高速缓存要:组选择、行匹配、字抽取
D .
当程序访问大小为2的幂的数组时,直接映射高带缓存中常发生冲突不命中
- 答案: A C D