1

メインプロセスとサブプロセスの間で情報を渡そうとしています(これがすべてプロセスでどのように機能するかを学習します)サブプロセスから情報を取得する必要があります。この場合はg_startの値です。これは私がこれを処理するためにオンラインで見た方法です、より良い方法があれば私に知らせてください!

メインファイルには

$ define/job/nolog g_start false
$ g_test == 6
$ spawn @test.com
$ if f$trnlnm(g_start) .eqs. true
$ then

ファイルtest.comには次のものが含まれています。

$ If g_test .nes. 5 
$ then
$ define/job g_start true
$ endif
$ logout

メインファイルを実行しているときにg_testが見つからないので、メインプロセスとサブプロセスの間でデータが行き来しないという間違ったことをしているのです。

4

2 に答える 2

1

DCLシンボル(g_test)はプロセス間で共有されません。たとえば、ジョブテーブルで共有論理名を使用すると、機能します。

メッセージの受け渡しなどのより高度な通信は、メールボックスを使用して行うことができます。

編集:明確にするために、spawn/symbols作成時にシンボルがサブプロセスにコピーされますが、それは新しいシンボルのセットを作成します。その後、親プロセスは順調に進み、いずれかのプロセスでのシンボルの更新はすべて独立して行われます。

于 2013-02-20T15:47:22.313 に答える
0

私はこれを解決することができました、私が推測する私の側のタイプミス。

ファイル1:

$ define/job g_start false
$ g_test == 6
$ spawn @test.com
$ result = f$trnlnm("g_start")
$ write sys$output ''result'
$ if (''result' .eq. "true")
$ then

ファイル2:

$ If g_test .nes. 5 
$ then
$ define/job g_start true
$ endif
$ logout
于 2013-02-20T18:10:41.613 に答える