博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符设备与块设备的区别
阅读量:6131 次
发布时间:2019-06-21

本文共 593 字,大约阅读时间需要 1 分钟。

hot3.png

Linux中I/O设备分为两类:块设备和字符设备。两种设备本身没有严格限制,但是,基于不同的功能进行了分类。

(1) 字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。相反,此类设备支持按字节/字符来读写数据。举例来说,调制解调器是典型的字符设备。

(2) 块设备:应用程序可以随机访问设备数据,程序可自行确定读取数据的位置。硬盘是典型的块设备,应用程序可以寻址磁盘上的任何位置,并由此读取数据。此外,数据的读写只能以块(通常是512B)的倍数进行。与字符设备不同,块设备并不支持基于字符的寻址

 

简单来讲,块设备可以随机存取,而字符设备不能随机存取.磁盘、内存、显示器都是块设备,字符设备如键盘和串口。块设备一般都有缓存,而字符设备一般都没有缓存。

例如:

#include 
#include 
#include 
 int main(void){   int i;   for(i=0; i<2; i++){      fork();      printf("-");   }    return 0;}

最终输出8个"-"

就是因为块设备有缓存的原因

 

 

 

有趣有爱有价值:

 

转载于:https://my.oschina.net/hejiula/blog/191757

你可能感兴趣的文章
在Windows 8 PC上安装Linux的四种方法
查看>>
MaxCompute计算长尾问题
查看>>
保险行业上云的正确姿势:天安人寿金融云实践之路
查看>>
OpenGL ES简介
查看>>
Scala入门到精通——第十节 Scala类层次结构、Traits初步
查看>>
《C语言及程序设计》程序阅读——位运算及其应用
查看>>
亚云邮件营销软件背后的阿里云平台支持
查看>>
MySQL sql_mode 说明(及处理一起 sql_mode 引发的问题)
查看>>
Java 注解详解 (annotation)
查看>>
鹰眼跟踪、限流降级,EDAS的微服务解决之道
查看>>
秘籍:程序猿该如何实力撩妹
查看>>
网络编程socket基本API详解
查看>>
API接口设计 OAuth2.0认证
查看>>
Mysql5.6的1755错误解决办法
查看>>
在命令行中运行“mvn compile”因为中文报错
查看>>
Docker的技术不再局限于测试和开发
查看>>
技术干货:工欲善其事,必先利其器 阿里云数据库系列谈之一
查看>>
禁用ViewState
查看>>
深入理解Java HashMap实现原理
查看>>
阿里云备案获取服务号
查看>>