CSAPP笔记(第十章)

CSAPP第十章:系统级I/O部分概述

一.UNIX I/O

在Linux(UNIX)中,所有的I/O设备(例如网络、磁盘和终端)都被模型化为文件,而所有的输入和输出都被当做对相应的文件的读和写来执行。一句话概括就是,在Linux(UNIX)中,一切皆文件
而文件实际上可以看做是字节的序列。因为所有的 I/O 设备也是用文件来表示的,比如:

./dev/sda2 (/usr 磁盘分区)
/dev/tty2 (终端)

甚至连内核也是用文件来表示的:

/boot/vmlinuz-3.13.0-55-generic (内核镜像)
/proc (内核数据结构)

所以内核可以利用称为 Unix I/O 的简单接口来处理输入输出,比如使用 open() 和 close() 来打开和关闭文件,使用 read() 和 write() 来读写文件,或者利用 lseek() 来设定读取的偏移量等等。

二.文件分类

因为文件繁多,为了区别不同文件的类型,会有一个 type 来进行区别:

普通文件:包含任意数据
目录:相关一组文件的索引
套接字 Socket:和另一台机器上的进程通信的类型

三.打开和关闭文件

进程是通过调用open函数来打开一个已存在的文件或者创建一个新文件,
如下面所示;

1.#include <sys/types.h>
2.#include <sys/stat.h>
3.#include <fcnt1.h>
4.
5.int open(char *filename,int
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值