Я проектирую симулятор MIPS в C++, и моя упрощенная ОС должна иметь возможность запускать stat() иногда (когда программа, выполняемая на моем симуляторе, требует ввода или вывода или что-то в этом роде.)Вопрос о STDIN STDOUT STDERR
Проблема заключается в том, что я должен иметь возможность утверждать STDIN, STDOUT и STDERR в качестве параметров stat stat ("stdin", buff) ", где buff - это указатель на точку вставки, для возвращаемых данных структуры, в памяти. На самом деле я буду использовать fstat(), который использует файловые дескрипторы, чтобы указать на файл, который будет установлен. Моя таблица дескрипторов файлов в моей простой ОС резервирует 0, 1 и 2 для stdin, stdout и stderr. Я немного смущен тем, что такое STDIN и т. Д. Это потоки, я понимаю, что они определены в stdio.h, но как в мире я получаю структуру stat со всей необходимой информацией о файле для каждого из этих потоков?
Насколько я понял, 0, 1 и 2 были зарезервированными файловыми дескрипторами для stdin, stdout и stderr. Поэтому моя таблица дескрипторов файлов может предоставить stat() имена файлов. Дело в том, что моя таблица дескрипторов файлов в C++ - это вектор, в который я вставляю имя файла открытого файла в вектор, а первые три элемента вектора при запуске - это «STDIN», «STDOUT» и «STDERR», , Но я не знаю, как именно запустить stat() на STDIN (например). Создает ли stdin временный файл, на котором я могу запустить stat()? –