私はこれをコーディングしました。
$ 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
。
ls -l /proc/self/fd
たとえば、現在のシェルではなくプロセスに適用されることに注意してくださいls
。これでこれを確認できます。
cat /proc/self/cmdline | tr '\000' '\n'
または
cat /proc/self/status
最後に、PPid
シェルのPIDを見てください。
Name: cat
State: R (running)
Tgid: 12696
Pid: 12696
PPid: 312
実験的に2つの端末ウィンドウを開くことができます。
echo $$
このシェルのPIDを取得するには、ウィンドウ1に入力します。- ウィンドウ2で言う
cat /proc/[pid]/fd/1
- ウィンドウ1で入力を開始し、ウィンドウ2で何が起こっているのかを見てください。