什么是UNIX中的/ dev / tty?

时间:2012-05-03 16:14:10

标签: unix

stdin和stdout文件描述符都指向它。它是如何工作的?有人可以指出一个很好的资源来理解与它交互的UNIX终端和系统调用。

1 个答案:

答案 0 :(得分:41)

dev/tty是表示当前控制台的文件系统对象。从命令行将文件复制到此“目录”会将这些文件的内容打印到控制台:

cp myfile.txt /dev/tty

相当于

cat myfile.txt

这些对象可让您使用熟悉的文件API与控制台进行交互。这是一种将控制台API与文件API统一的巧妙方法。您可以使用fopenfprintf等与控制台进行交互,方法与使用常规文件进行交互的方式相同。

此示例将"Hello, world\n"写入终端:

#include <stdio.h>

int main (int argc, const char * argv[]) {
    FILE *f = fopen("/dev/tty", "w");
    fprintf(f, "Hello, world!\n");
    return 0;
}