函数ttyn(3)返回什么?
手册页位于:
http://man.cat-v.org/unix-6th/3/ttyn
这个例子: if (ttyn(0) = 'x'){ ... } 手册页说“如果指示的文件与a不对应,则返回x 指示的文件将是参数0,所以标准输入,对吧? 什么是打字机?我的键盘? 你用这条线检查什么? if (ttyn(0) = 'x') 解决方法
在那个时间点,打字机(或电传打字机或tty)是通过串行端口连接到计算机的RS-232终端.对应于这些端口的/ dev中的设备条目被命名为/ dev / tty0,/ dev / tty1,/ dev / ttya等.这些文件中的每一个都是字符特殊文件,而不是普通文件.
当系统检测到终端时,通常通过调制解调器打开或连接,init进程在新进程中在文件描述符0,1和2上打开设备,并且这些文件描述符在登录过程中持续存在,用户的shell,以及从shell派生的任何进程. 正如您在问题中所说,文件描述符0也称为标准输入. ttyn函数在其参数上调用fstat,它返回有关文件的一些信息,例如它的inode编号,权限等.然后ttyn读取/ dev,查看以“tty”开头的每个文件,看看哪个文件有与ttyn的参数相同的inode编号.当找到匹配项时,它返回文件名的第4个字符,即“0”,“1”,“a”等.如果未找到匹配项,则返回“x”. PDP-11上通常有一个控制台和一些8端口串行接口.所以没有ttyx.你可以在/ dev中为任何你想要的设备命名.所以很容易避免/ dev / ttyx是一个真正的设备. 像goto这样的命令可以使用ttyn(0)!=’x’来确定用户是否实际在终端上键入命令. Here是V6中init使用的默认配置文件/ etc / ttys.控制台是tty8. 在V7 Unix中,ttyn的功能被ttyname取代,ttyname可以容纳更长的设备名称,而isatty则在fle描述符是终端设备时返回true. V7中没有goto命令. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |