终端的基本概念

来源:互联网 发布:淘宝美工在线布局 编辑:程序博客网 时间:2024/06/08 07:41
摘自《linux C语言编程一站式学习》一书
()内为我个人理解。

终端
     
         在UNIX系统中,用户通过终端登录系统后得到一个Shell进程,这个终端成为Shell进程的控制终端( Controlling Terminal) ,控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,
因此由Shell进程启动的其它进程的控制终端也是这个终端。(1.由上可知:终端等于控制终端)
默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从
准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器上。此外
,在控制终端输入一些特殊的控制键可以给前台进程发信号,例如Ctrl-C表示SIGINT, Ctrl-\表示SIGQUIT。
(2.由“在控制终端输入一些特殊的控制键可以给前台进程发信号”可知:控制终端=准输入+准输出+准错误=键盘+显示器
每个进程都可以通过一个特殊的设备文件/dev/tty访问它的控制终端。(3.由上可知:可以通过设备文件/dev/tty
访问控制终端)事实上每个终端设备都对应一个不同的设备文件, /dev/tty提供了一个通用的接口,一个进
程要访问它的控制终端既可以通过/dev/tty也可以通过该终端设备所对应的设备文件来访问。 ttyname函数可
以由文件描述符查出对应的文件名,该文件描述符必须指向一个终端设备而不能是任意文件。



综合1、2、3得:
                         1)终端=键盘+显示器
                          2)设备文件/dev/tty可以访问终端


 

原创粉丝点击