Fn rexec 関数は gethostbyname(3) を使用してホスト Fa *ahost を検索し、ホストが存在しない場合は -1 を戻します。ホストが存在する場 合は、ホストの標準名に Fa *ahost を設定します。ユーザ名とパスワードの両方が指定されている場合は、この情 報を使用して外部ホストに認証します。ユーザ名とパスワードが指定されてい な場合は、ホームディレクトリの環境とユーザの .netrc ファイルを検索して適切な情報を特定します。このすべてがエラーとなった場 合は、情報を入力するようにユーザに要求します。
ポート Fa inport は、接続に使用する、既知の DARPA インターネットポートを指定します。 Fn getservbyname exec tcp を呼び出すと ( getservent(3) 参照)、必要なポートを含む構造体のポインタが戻されます。 接続のプロトコルについては、 rexecd(8) を参照してください。
問題なく接続されると、 SOCK_STREAM タイプのインターネットドメインのソケットが呼び出し側に戻され、 stdin と stdout としてリモートコマンドに指定されます。 Fa fd2p が 0 以外である場合は、制御プロセスの補助チャンネルが設定され、その記述子が Fa *fd2p に配置されます。制御プロセスは、このチャンネルのコマンド (ユニット 2) か ら診断出力を戻し、このチャンネルのバイトを UNIX シグナル番号として受け入れ、コマンドのプロセスグループに転送します。戻される 診断情報には、認証が確認されてから第 2 接続が設定されるので、リモート認証 エラーが含まれません。 Fa fd2p が 0 である場合は、 stderr (リモートコマンドのユニット 2) が stdout と同じように作成されます。バンド外データを使用して注目を集められますが、 リモートプロセスに任意のシグナルを送信する準備は行なわれません。
基礎となるサービスは、セキュリティの大きな問題があるとみなされているた め、多くのサイトでは有効になっていません。 rexecd(8) を参照してください。