调用forkpty时,X会抛出错误。 (C ++)

时间:2010-01-30 20:52:23

标签: c++ linux qt x11 pty

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

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 ++编程。

编辑:Here's指向问题的链接,其中包含最终适用于我的代码。

1 个答案:

答案 0 :(得分:1)

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