当我的程序到达这一行时:

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.

并终止。如您所见,我正在尝试添加一些东西,但无法正常工作。

另外,是否可以在类中调用forkpty()? (我尝试了两种方式,但均无济于事。)

我正在Ubuntu 9.10上使用QT C++进行编程。

编辑:Here's到最终对我有用的代码的问题链接。

最佳答案

forkpty()派生您的进程。您需要首先关闭文件描述符,尤其是在子进程中与X服务器的连接。这意味着您可能无法使用forkpty,而必须在子进程logintty/()中使用openpty(),fork(),close filedescriptors

10-08 05:53