关于终端的一些总结
2014-01-17 19:23
141 查看
ttS*是面向设备
ttyn是面向进程
shell与终端的关系:shell把一些信息适当的输送到终端设备,同时还接收来自终端设备的输入。一般每个shell进程都会有一个终端关联,也可以没有。
文件都有设备号属性(主设备号和从设备号)
字符设备的特性是FIFO,是一个队列,没有缓冲区,典型的是键盘和屏幕,在用户空间对应的是(stdin,stdout,stderror,对应glibc的FILE结构体),对应的设备文件是tty或者tps/n,stdio中的读写函数(printf,scanf),使用的便是上面三个结构体打开的文件,所谓的读写缓冲区就是stdio和stdout FILE结构体对应的缓冲区,stderror没有缓冲区,因此可以直接输出。
上面的说法有些问题,因为pts和ptmx并不代表实际的设备
when open a terminal(like gome-terminal),the input and output is running on it,and it pass user's input to the shell or its son process(by fork),it's easy to be confused by the realinput and stdin
http://blog.csdn.net/lzhsdly/article/details/7218918
伪终端模仿早先时候的通信方式,主设备和从设备,主设备对应早些时候的主机,从设备对应终端。目的是为了实现进程的通信。
ttyn是面向进程
shell与终端的关系:shell把一些信息适当的输送到终端设备,同时还接收来自终端设备的输入。一般每个shell进程都会有一个终端关联,也可以没有。
文件都有设备号属性(主设备号和从设备号)
字符设备的特性是FIFO,是一个队列,没有缓冲区,典型的是键盘和屏幕,在用户空间对应的是(stdin,stdout,stderror,对应glibc的FILE结构体),对应的设备文件是tty或者tps/n,stdio中的读写函数(printf,scanf),使用的便是上面三个结构体打开的文件,所谓的读写缓冲区就是stdio和stdout FILE结构体对应的缓冲区,stderror没有缓冲区,因此可以直接输出。
上面的说法有些问题,因为pts和ptmx并不代表实际的设备
when open a terminal(like gome-terminal),the input and output is running on it,and it pass user's input to the shell or its son process(by fork),it's easy to be confused by the realinput and stdin
http://blog.csdn.net/lzhsdly/article/details/7218918
伪终端模仿早先时候的通信方式,主设备和从设备,主设备对应早些时候的主机,从设备对应终端。目的是为了实现进程的通信。
相关文章推荐
- 关于乱码的一些总结--项目过程的点点滴滴
- 关于板块“看过的一些书的读后感与总结”
- 关于ListActivity的一些总结
- 关于ASP.NET与CLR相互关系的一些总结
- 关于继承的一些小总结
- 关于ip route 线路负载均衡的一些总结 关于包的原路返回的问题:
- 关于增强软件开发模块化和可扩展性的一些总结
- 关于css3的Transition,Transforms以及动画的一些总结
- 关于JS定时器的一些总结
- 关于地图拍照上传项目的一些总结
- 关于com工程依赖的一些总结
- 关于NoSQL之MongoDB的一些总结
- 关于mysql表格实战的一些总结(小白篇)
- 关于C语言中return的一些总结
- 关于java类装载机制一些总结
- 关于ip route 线路负载均衡的一些总结
- 关于cpu总线位数的一些小总结
- 关于php中一些字符串的一些面试题的总结
- 关于在scrum中的一些总结
- 关于PHP操作文件的一些FAQ总结