標準 I/O 檔案描述符

標準 I/O 檔案描述符

我編碼這個

$ ls -l 1> stdout.txt

我得到了所需的輸出,

1> stdout.txt

將輸出從標準輸出重定向到檔案 stdout.txt。

我在磁碟上沒有看到任何此類文件。什麼樣的文件系統支援這樣的文件,是記憶體檔案系統

這和下面的有沒有相似之處行程檔案系統系統檔案系統

答案1

如果您使用的是 Linux,並且我正確地閱讀了您的問題,請查看/proc

對於特定過程,請查看/proc/[pid]/fd,例如ls -l /proc/123/fd/

還有一種特殊的方法可以透過以下方式存取當前進程 fd:/proc/self/fd

請注意,egls -l /proc/self/fd適用於ls進程,而不適用於您目前的 shell,您可以透過以下方式查看:

cat /proc/self/cmdline | tr '\000' '\n'

或者

cat /proc/self/status

最後來看一下,特別是PPid你的 shell 的 PID。

Name:   cat
State:  R (running)
Tgid:   12696
Pid:    12696
PPid:   312

作為實驗,您可以嘗試開啟兩個終端視窗:

  1. 在視窗 1 中輸入echo $$以取得該 shell 的 PID。
  2. 在窗口2中說cat /proc/[pid]/fd/1
  3. 在視窗 1 中開始輸入並觀察視窗 2 中發生的情況。

相關內容