3

私のプログラムがこの行に到達すると:

pid_t nPid = forkpty( &m_nMasterFD, NULL, NULL, NULL );

これを出力します:

X Error: BadIDChoice (invalid resource ID chosen for this connection) 14
  Extension:    148 (RENDER)
  Minor opcode: 17 (RenderCreateGlyphSet)
  Resource id:  0x3600002
<unknown>: Fatal IO error 4 (Interrupted system call) on X server :0.0.

そして終了します。ご覧のとおり、何かを実行するために pty を作成しようとしていますが、うまくいきません。

また、forkpty()クラス内で呼び出す方法はありますか? (両方の方法を試しましたが、どちらもうまくいきませんでした。)

Ubuntu 9.10 で QT C++ でプログラミングしています。

編集:これは、最終的に機能したコードを含む質問へのリンクです

4

1 に答える 1

1

forkpty() はプロセスをフォークします。最初にファイル記述子、特に子プロセスの X サーバーへの接続を閉じる必要があります。これは、 forkpty を使用できない可能性が高いことを意味しますが、子プロセス logintty/() で openpty()、fork()、クローズ ファイル記述子を使用する必要があります。

于 2010-01-30T21:39:04.297 に答える