Pythonの擬似端末ユーティリティ
疑似端末ユーティリティモジュールptyは、疑似端末の概念を処理するために定義されています。これを使用して、別のプロセスを開始したり、プログラムを使用して制御端末から読み取りまたは書き込みを行ったりすることができます。
このモジュールは高度なプラットフォーム指向です。これらの操作を実行するには、UNIXシステムを使用する必要があります。
ptyモジュールを使用するには、-
を使用してインポートする必要があります。import pty
ptyモジュールにはいくつかのモジュールがあります。これらは-
です。メソッドpty.fork()
この方法は、子制御端末を疑似端末に接続するために使用されます。このメソッドは、pidとfdを返します。子プロセスはpid0を取得しますが、fdは無効です。親の戻り値は子プロセスのpidであり、fdは子制御端末を保持します。
メソッドpty.openpty()
このメソッドは、新しい疑似端末ペアを開くために使用されます。マスターとスレーブのファイル記述子を返します。
メソッドpty.spawn(argv [、master_read [、stdin_read]])
スポーンプロセスは、その制御端末を現在のプロセス標準ioに接続するために使用されます。 master_readとstdin_readはファイル記述子から読み取られます。デフォルトのサイズは1024バイトです。
サンプルコード
import pty, os def process_parent_child(): (process_id, fd) = pty.fork() print("The Process ID for the Current process is: " + str(os.getpid())) print("The Process ID for the Child process is: " + str(process_id)) process_parent_child() master, slave = pty.openpty() print('Name of the Master: ' + str(os.ttyname(master))) print('Name of the Slave: ' + str(os.ttyname(slave)))
出力
The Process ID for the Current process is: 12508 The Process ID for the Child process is: 12509 Name of the Master: /dev/ptmx Name of the Slave: /dev/pts/2
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',
-
Pythonソケットエラー48を修正
ソケットエラー48は、プロセスがすでに使用されているポートに自分自身をバインドしようとしたときにトリガーされるPythonエラーです。 「socket.error:[Errno48]アドレスはすでに使用されています」エラーの原因は何ですか? 簡単な調査の結果、原因は次のとおりであることがわかりました。 ポートにバインドされたプロセス: サーバー上にプロセスが作成されるたびに、インターネットとの通信にポートが使用されます。ポートは、一度に1人のゲストを楽しませることができるホストのようなものです。ただし、ポートを指定しない場合、サーバーはデフォルトのポートでポートを作成するだけです。次回