27

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

4

1 回答 1

46

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

cp myfile.txt /dev/tty

相当于

cat myfile.txt

这些对象可以让您使用熟悉的文件 API 与控制台进行交互。将控制台 API 与文件 API 统一起来是一种巧妙的方法。您可以使用fopen,fprintf等与控制台进行交互,就像与常规文件交互一样。

此示例写入"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;
}
于 2012-05-03T16:23:38.170 回答