パイプを使用して親プロセスと子プロセスの間で通信するPythonプログラム。
子プロセスを作成する最も簡単な方法はforkを使用することです。fork()はos標準のPythonライブラリの一部です。
ここでは、pipe()を使用してこのタスクを解決します。あるプロセスから別のプロセスに情報を渡すために、pipe()が使用されます。双方向通信の場合、pipe()は単方向であるため、各方向に1つずつ、合計2つのパイプを使用できます。
アルゴリズム
Step 1: file descriptors r, w for reading and writing. Step 2: Create a process using the fork. Step 3: if process id is 0 then create a child process. Step 4: else create parent process.
サンプルコード
import os def parentchild(cwrites): r, w = os.pipe() pid = os.fork() if pid: os.close(w) r = os.fdopen(r) print ("Parent is reading") str = r.read() print( "Parent reads =", str) else: os.close(r) w = os.fdopen (w, 'w') print ("Child is writing") w.write(cwrites) print("Child writes = ",cwrites) w.close() # Driver code cwrites = "Python Program" parentchild(cwrites)
出力
Child is writing Child writes = Python Program Parent is reading Parent reads = Python Program
-
Pythonを使用して親ポインターを使用して、バイナリツリーの最も低い共通の祖先を見つけるプログラム
二分木と2つの特定のノードxとyが与えられたとします。二分木から2つのノードの最も低い共通の祖先を見つける必要があります。二分木の最も低い共通の祖先は、ノードxとyの両方が子孫である最も低いノードです。特定のノードは、それ自体の子孫になることもできます。ノードを見つけて出力として返す必要があります。 ツリーのノード構造は次のようになります- TreeNode: data: <integer> left: <pointer of TreeNode> right: <pointer of
-
Pythonを使用して式ツリーを構築および評価するプログラム
式ツリーのポストオーダートラバーサルが与えられたとします。与えられたポストオーダートラバーサルから式ツリーを構築してから、式を評価する必要があります。式ツリーのルートとツリーの評価値を返します。 したがって、入力が次のような場合 その場合、出力は-7になります。 ツリーの入力として指定された接尾辞の順序は、[1、 2、+、 3、 4、+、*]です。評価すると、式は(1 – 2)*(3 + 4);になります。これは-7に相当します。 これを解決するには、次の手順に従います- 左=0右=1 関数evaluate()を定義します。これが定着します ルートの値が数値の場