ファイル記述子またはファイルハンドルでリダイレクトが機能しますか?

ファイル記述子またはファイルハンドルでリダイレクトが機能しますか?

~からhttps://www.gnu.org/s/bash/manual/html_node/Redirections.html

シェルで解釈される特殊記号を使用して、コマンドを実行する前にコマンドの入力と出力をリダイレクトできます。リダイレクト許可コマンドファイルハンドルさまざまなファイルをコピー、開く、閉じ、参照でき、コマンドで読み書きするファイルを変更できます。リダイレクトを使用して変更することもできます。ファイルハンドル現在のシェル実行環境で。

ただし、リンクの次のテキストは、リダイレクトがファイル記述子(整数)で機能することを示しています。

ファイルハンドルとファイル記述子は異なります。 ~からhttps://en.wikipedia.org/wiki/File_descriptor#OverviewFILEでは、ファイルハンドルはC標準ライブラリのデータ構造です。ファイル記述子は、UnixおよびUnixファミリーのオペレーティングシステムのオブジェクトです。

bashのマニュアルの引用で「ファイルハンドル」とはどういう意味ですか?

答え1

Bash ドキュメントでは、「ファイルハンドル」という用語を「ファイル記述子」の同義語として使用します。

プログラムはI / OにC標準ライブラリを使用する必要はありません。明らかに、これはfdopen()ファイル記述子の1つから構造を取得(指す)するために使用できます。FILE

答え2

(Linuxシステムの場合)次のように書く場合:

ls -l /proc/$$/fd

開いている fd (ファイル記述子) のリストに以下を記録します。

lrwx------ 1 user user 64 dic  8 00:06 0 -> /dev/pts/12
lrwx------ 1 user user 64 dic  8 00:06 1 -> /dev/pts/12
lrwx------ 1 user user 64 dic  8 00:06 2 -> /dev/pts/12
lrwx------ 1 user user 64 dic  8 00:06 255 -> /dev/pts/12

人々は「ファイルハンドル」とも呼ばれる

ご覧のとおり、数字は0,1,2です。 stdin(0), stdout(1), stderr(2) と同じです。

したがって、リダイレクトはこれらの番号(例:>&2)に対して機能し、いくつかの新しい番号(例:>&18)を生成できます。

これらのファイル記述子には、/dev/stdout、/dev/fd1、または他の名前など、他の古い名前でアクセスすることもできます。

ウィキペディアには一つあります。比較的良い説明

関連情報