zoukankan      html  css  js  c++  java
  • /dev/tty /dev/ttyS0 /dev/tty0,/dev/null区别

    1./dev/tty表示控制终端
    如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。 

    root@iZ23onhpqvwZ:/dev# echo "test" > /dev/tty
    test (输出了test)


    控制终端可以是Xwindows模式下的伪终端(/dev/pts/*),也可以是控制台虚拟终端(/dev/tty*)

    1. if (device == MKDEV(5, 0)) {
    2.         tty = get_current_tty();
    3.         if (!tty) {
    4.             mutex_unlock(&tty_mutex);
    5.             return -ENXIO;
    6.         }
    7.         driver = tty_driver_kref_get(tty->driver);
    8.         index = tty->index;
    9.         filp->f_flags |= O_NONBLOCK; /* Don't let /dev/tty block */
    10.         /* noctty = 1; */
    11.         /* FIXME: Should we take a driver reference ? */
    12.         tty_kref_put(tty);
    13.         goto got_driver;
    14.     }

    "driver"对应到驱动,“index"对应到具体的设备,我们从中也可以看出/dev/tty有些类似于到实际所使用终端设备的一个链接
    2./dev/tty0则是当前所使用虚拟终端的一个别名

    1. # tty(查看当前TTY)
    2. /dev/tty1
    3. #echo "test tty0" > /dev/tty0
    4. test tty0

    内核实现如下:

      1. if (device == MKDEV(4, 0)) {
      2.         extern struct tty_driver *console_driver;
      3.         driver = tty_driver_kref_get(console_driver);
      4.         index = fg_console;
      5.         noctty = 1;
      6.         goto got_driver;
      7.     }


    shell中可能经常能看到:>/dev/null 2>&1 

    命令的结果可以通过%>的形式来定义输出

    /dev/null 代表空设备文件

    那么本文标题的语句:
    1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
    2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

    参考:http://blog.csdn.net/suiyuan19840208/article/details/7234722

    http://blog.chinaunix.net/uid-26696487-id-3207777.html

  • 相关阅读:
    CSS display:none和visibility:hidden区别
    Eclipse 开发版本选择
    JavaScript 三种弹出框
    jstree的数据后台生成
    C# Enum,Int,String的互相转换 枚举转换
    JS 异常: Uncaught RangeError: Maximum call stack size exceeded
    JS中encodeURI,escape,encodeURIComponent区别
    安卓Android手机系统内文件夹目录解释
    jquery操作select(取值,设置选中)
    单例/单体模式(Singleton)
  • 原文地址:https://www.cnblogs.com/youxin/p/4049735.html
Copyright © 2011-2022 走看看