Подтвердить что ты не робот

Что такое /dev/tty в UNIX?

Оба дескриптора файла stdin и stdout указывают на это. Как это работает? Может ли кто-то указать на хороший ресурс для понимания терминалов UNIX и системных вызовов, которые взаимодействуют с ним.

4b9b3361

Ответ 1

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;
}