0


Ubuntu Linux:擬似端末ペアのマスター側を参照するパスを取得する方法有効な Linux パスを持っていません。

この非常に優れた Liunx API ブックの最後の章で説明されている動作中の Linux 疑似端末の例http://www.man7.org/tlpi/code/online/all_files_by_chapter.html#ch64に関して: http://www.nostarch .com/tlpi

Linux linux 疑似端末 API の現状に関する質問です。上記の例では、必要に応じて fork/exec されたプログラムの stdin/stdout/stderr ストリームを PTY スレーブにリダイレクトします...すべて PTY の側で問題ありません。

しかし、複数タブのターミナル エミュレータ プロセスに引数として渡す必要がある疑似ターミナル マスターのパスは、まだ存在していないようです。

私の質問は、疑似端末ペアのマスター側の名前付きパスの作成に関するものです...上記のコード例では、PTYマスター側のように、PTYスレーブ側のみが実際に名前を持っていることがわかります。は、開いているファイル記述子を介してのみ参照されます...そして、「readlink("/dev/fd/3"...) を介してマスター側のパスを照会すると、PTY マスター クローン パス "/ dev/ptmx"、したがって、PTY マスター側にはまだパス名がない可能性があると思いますか? .. link() を呼び出して有効なパスを作成する必要があるかもしれないと思いました...しかし link()引数として開いているファイル記述子ではなく、既存のパスのみを受け取りますか? ...結果のPTYマスターへのリンクを作成することを期待して、PTYクローンデバイスに戻るlink("/dev/ptmx", NewPTM_name)を呼び出してみました側、しかし、その呼び出しは失敗し、-1 が返されます。

次に、この PTY マスター側のパス文字列引数をターミナル エミュレーターに、おそらくコマンド ライン経由で、または RoxTerm の場合はおそらく DBus 経由で渡したいと思います...

多くのターミナル エミュレータ プログラムには、ターミナル ウィンドウ内でプログラムを実行できるようにする -e または -x 引数があることを認識しています。 ... この作業は共有メモリ マルチプロセッシング システムをサポートするため、このような作業が必要です。

4

1 に答える 1