2018-2019-1 20165337 《信息安全系统设计基础》第六周学习

系统级I/O

  • 输入输出是在主存和外部设备之间复制数据的过程。
  • 输入是I/O设备复制数据到主存,输出是主存复制数据到I/O设备。

Unix I/O

  • linux文件是m个字节的序列,所有的I/O设备都被模型为文件,而所有的输入和输出都被当作相应文件的读和写来执行。
  • 打开文件。一个应用程序通过要求内核打开相应的文件,来宣告它想要访问一个I/O设备。
  • Linux shell创建的每个进程开始时都有三个打开的文件:标准输入(描述符为0)、标准输出(描述符为1)和标准错误(描述符为2)。
  • 改变当前文件的文件位置。对于每个打开的文件,内核保持着一个文件位置k,初始为0.这个文件位置是从文件开头起始的字节偏移量。
  • 读写文件:一个读操作就是从文件拷贝n>0个字节到存储器。写操作就是从存储器拷贝n>0个字节到一个文件。
  • 关闭文件:当应用完成了对文件的访问之后,它就通知内核关闭这个文件。作为响应,内核释放文件打开时创建的数据结构,并将这个描述符恢复到可用的描述符池中。

文件

每一个linux文件都有一个类型来表示它在系统中的角色:

  • 普通文件:包含任意数据,应用程序区分为文本文件和二进制文件。
  • 目录:是包含一组链接的文件。
  • 套接字:用来与另一个进程进行跨网络通信的文件。

打开或关闭文件

  • O_RDONLY:只读

  • O_WRONLY:只写

  • O_RDWR:可读可写

  • O_CREAT:如果文件不存在,就创建它的一个截断的(空)文件

  • O_TRUNC:如果文件已经存在,就截断它

  • O_APPEND:在每次写操作前,设置文件位置到文件的结尾处

读写文件

ssize_t read(int fd,void *buf,size_t n);

ssize_t write(int fd,const void *buf,size_t n);

共享文件

posted @ 2018-11-04 22:49  y963976867  阅读(144)  评论(0编辑  收藏  举报