20145334 《信息安全系统设计基础》第10周学习总结
2016-11-16 16:27
363 查看
open函数:打开一个已存在的文件或者创建一个新文件
open函数将filename转换为一个文件描述符,并且返回描述符数字。
返回的描述符总是在进程中当前没有打开的最小描述符。
flag参数可以是一个或多个更多位掩码
应用程序是通过分别调用read和write函数来执行输入和输出的
用RIO包健壮地读写
RIO包的实质:I/O包
RIO包提供的两种函数:
无缓冲的输入输出函数、带缓冲的输入函数(线程安全)
应用程序通过调用rioreadn和riowritten函数可以在存储器和文件之间直接传送数据
读取文件元数据
检索文件信息(元数据):应用程序能够通过调用stat和fstat函数
stat函数以一个文件名作为输入,填写一个stat数据结构中的各个成员。
fstat函数以文件描述符而不是文件名作为输入。
st_ size成员包含了文件的字节数大小。
st_ mode成员则编码了文件访问许可位和文件类型。
文件类型包括:
普通文件:某种类型的二进制或文本数据。
目录文件:关于其他文件的信息。
套接字:一种用来通过网络与其他进程通信的文件。
宏指令:根据st_mode成员来确定文件的类型
在sys/stat.h中定义:
Unix外壳提供了I/O重定向操作符,允许用户将磁盘文件和标准输入输出联系起来。
unix> ls > foo.txt
标准I/O
标准I/O库将一个打开的文件模型化为一个流,一个流就是一个指向FILE类型的结构的指针。每个ANSIC程序开始都有三个打开的流stdin、stdout和stderr,分别对应于标准输入、标准输出、标准错误。
#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(char *filename,int flags,mode_t mode);
open函数将filename转换为一个文件描述符,并且返回描述符数字。
返回的描述符总是在进程中当前没有打开的最小描述符。
O_ RDONLY :只读 O_ WRONLY :只写 O_ RDWR :可读可写
flag参数可以是一个或多个更多位掩码
O_ CREAT:如果文件不存在,就创建它的一个截断的空文件 O_ TRUNC:如果文件已经存在,就截断它 O_ APPEND:在每次写操作前,设置文件位置到文件的结尾处
应用程序是通过分别调用read和write函数来执行输入和输出的
#include <unistd.h> ssize_t read(int fd,void *buf,size_t n); ssize_t write(int fd,const void *buf,size_t n);
用RIO包健壮地读写
RIO包的实质:I/O包
RIO包提供的两种函数:
无缓冲的输入输出函数、带缓冲的输入函数(线程安全)
应用程序通过调用rioreadn和riowritten函数可以在存储器和文件之间直接传送数据
#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);
读取文件元数据
检索文件信息(元数据):应用程序能够通过调用stat和fstat函数
#include <unistd.h> #include <sys/stat.h> int stat(const char *filename,struct stat *buf); int fstat(int fd,struct stat *buf);
stat函数以一个文件名作为输入,填写一个stat数据结构中的各个成员。
fstat函数以文件描述符而不是文件名作为输入。
st_ size成员包含了文件的字节数大小。
st_ mode成员则编码了文件访问许可位和文件类型。
文件类型包括:
普通文件:某种类型的二进制或文本数据。
目录文件:关于其他文件的信息。
套接字:一种用来通过网络与其他进程通信的文件。
宏指令:根据st_mode成员来确定文件的类型
在sys/stat.h中定义:
S_ ISREG():这是一个普通文件吗? S_ ISDIR():这是一个目录文件吗? S_ ISSOCK():这是一个网络套接字吗?
Unix外壳提供了I/O重定向操作符,允许用户将磁盘文件和标准输入输出联系起来。
unix> ls > foo.txt
标准I/O
标准I/O库将一个打开的文件模型化为一个流,一个流就是一个指向FILE类型的结构的指针。每个ANSIC程序开始都有三个打开的流stdin、stdout和stderr,分别对应于标准输入、标准输出、标准错误。
#include <stdio.h> extern FILE *stdin; extern FILE *stdout; extern FILE *stderr;
相关文章推荐
- 20145334赵文豪 《信息安全系统设计基础》第4周学习总结(关于第三周问题总结)
- 20145305 《信息安全系统设计基础》第10周学习总结
- 20145209 《信息安全系统设计基础》第10周学习总结
- 20145236《信息安全系统设计基础》第10周学习总结
- 20145201《信息安全系统设计基础》第10周学习总结
- 20145334《信息安全系统设计基础》第5周学习总结
- 20145334 《Java程序设计》第10周学习总结
- 20145209 《信息安全系统设计基础》第10周学习总结
- 20145314郑凯杰《信息安全系统设计基础》第10周学习总结
- 20145320周岐浩《信息安全系统设计基础》第10周学习总结
- 20145204 张亚军《信息安全系统设计基础》第10周学习总结
- 20145334 《信息安全系统设计基础》第8周学习总结
- 20145330 《信息安全系统设计基础》第10周学习总结
- 20145334 《信息安全系统设计基础》第7周学习总结
- 20145334赵文豪 《信息安全系统设计基础》第2周学习总结
- 20145334《信息安全系统设计基础》第9周学习总结
- 20145308 《信息安全系统设计基础》第10周学习总结
- 20145335郝昊 《信息安全系统设计基础》第10周学习总结
- 20145229《信息安全系统设计基础》第10周学习总结
- 20145331魏澍琛《信息安全系统设计基础》第10周学习总结