Оба дескриптора файла stdin и stdout указывают на это. Как это работает? Может ли кто-то указать на хороший ресурс для понимания терминалов UNIX и системных вызовов, которые взаимодействуют с ним.
Что такое /dev/tty в UNIX?
Ответ 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;
}