我正在用C++設計一個MIPS模擬器,並且我的簡化操作系統必須能夠偶爾運行stat()(當我的模擬器上正在執行的程序需要輸入或輸出或其他東西時。)關於STDIN STDOUT STDERR的問題
問題是,我需要能夠將STDIN,STDOUT和STDERR作爲參數stat「stat(」stdin「,buff)」,其中buff是指向插入點的指針,對於返回的結構數據,在記憶中。實際上,我將使用fstat(),它使用文件描述符來指向要進行統計的文件。我的簡單操作系統中的文件描述符表爲stdin,stdout和stderr保留0,1和2。我對STDIN等有點困惑。它們是流,我意識到它們是在stdio.h中定義的,但是我怎樣才能得到一個stat結構體,其中包含每個這些流的文件的所有相關信息?
據我所知0,1和2是stdin,stdout和stderr的保留文件描述符。所以我的文件描述符表可以提供stat()文件的文件名。事情是,我在C++中的文件描述符表是一個向量,在該向量中,我將打開的文件的文件名壓入向量中,啓動時向量的前三個元素是「STDIN」,「STDOUT」和「STDERR」 。但我不知道如何在STDIN上運行stat()(例如)。 stdin是否會創建一個可以運行stat()的臨時文件? – 2010-08-17 18:35:28