标签:ring 圆形 shel 相同 buffer 终端 服务 strong bsp
将文件内容写入到硬件设备时,比如磁盘的扇区,则需要进行系统调用,这类I/O操作的耗时很长,为了减少I/O操作的次数,文件通常使用缓冲区(当需要写入的字节数不足一个块时,将数据放入缓冲区,当数据凑够一个块的大小后才进行系统调用);
A、全缓冲:只有当数据凑够一个块时,才进行系统调用(即I/O操作);
B、行缓冲:碰到一个换行符,就进行一次系统调用;(多用于tty设备,也就是终端设备,如shell)
C、无缓冲:不进行缓冲,需要及时的将数据发送到接口;(比如串口设备)
# python中普通文件默认的缓冲行为:全缓冲,当凑够一个块的数据(4096个字节,也是缓冲区的大小)后,才进行系统调用(也就是I/O操作);
# 缓冲区的大小,是根据平台(如python)和块设备(如磁盘)自身的属性相关的;
格式:open(file, ‘r‘, buffering = n/1/0)
A、buffering = n,n > 1 :设定缓冲模式为全缓冲,缓冲区大小为n个字节;
B、buffering = 1:设定缓冲模式为行缓冲,遇到换行符 ‘\n‘ 时进行系统调用,也就是I/O操作,将数据写入磁盘;
C、buffering = 0:此为无缓冲你模式,只要有数据,就直接进行系统调用,也就是进行I/O操作,将数据写入磁盘;
标签:ring 圆形 shel 相同 buffer 终端 服务 strong bsp
原文地址:https://www.cnblogs.com/volcao/p/8810376.html