2018-2019-1 20165301 《信息安全系统设计基础》第六周学习总结
2018-2019-1 20165301 《信息安全系统设计基础》第六周学习总结
-
UNIX I/O
-
所有的I/O设备,如网络、磁盘都被模型化为文件,而所有的输入和输出都被当做对相应文件的读和写来执行。
-
这种将设备映射为文件的方式,允许UNIX内核引出一个简单、低级的应用接口,称为UNIX I/O,这使得所有的输入和输出都能以一种统一且一致的方式来执行。
-
-
打开和关闭文件
掩码 | 描述 |
---|---|
S_IRUSR | 使用者能够读这个文件 |
S_IWUSR | 使用者能够写这个文件 |
S_IXUSR | 使用者能够执行这个文件 |
S_IRGRP | 拥有者所在组的成员能够读这个文件 |
S_IWGRP | 拥有者所在组的成员能够写这个文件 |
S_IXGRP | 拥有者所在组的成员能够执行这个文件 |
S_IROTH | 其他人能够读这个文件 |
S_IWOTH | 其他人能够写这个文件 |
S_IXOTH | 其他人能够执行这个文件 |
- 读和写文件
- 读写文件用的系统函数为read()和write()函数来执行
读 read
#include <unistd.h>
ssize_t read(int fd, void *buf, size_t n);
写 write
#include <unistd.h>
ssize_t write(int fd, void *buf, size_t n);
- 用RIO包健壮地读写
- RIO包能自动地处理不足值。提供了两个函数:无缓冲的输入输出函数,带缓冲的输入函数。
- RIO的无缓冲的输入输出函数
#include "csapp.h"
ssize_t rio_readn(int fd, void *usrbuf, size_t n);
ssize_t rio_writen(int fd, void *usrbuf, size_t n);