当我的程序到达这一行时:
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指向问题的链接,其中包含最终适用于我的代码。
答案 0 :(得分:1)
forkpty()分叉你的进程。您需要首先关闭文件描述符,特别是与子进程中的X服务器的连接。这意味着您可能无法使用forkpty,但必须在子进程中使用openpty(),fork(),关闭filedescriptors,logintty /()