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

发布于 2024-08-20 09:17:54 字数 670 浏览 14 评论 0原文

当我的程序到达此行时:

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

编辑:这是问题的链接最终对我有用的代码。

When my program gets to this line:

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

Outputs this:

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.

And terminates. As you can see, I'm trying to make a pty to run stuff in, but it's not working.

Also, is there a way forkpty() can be called within a class? ( I tried both ways, but neither worked. )

I'm programming in QT C++ on Ubuntu 9.10.

EDIT: Here's a link to the question with the code that finally worked for me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一片旧的回忆 2024-08-27 09:17:54

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

forkpty() forks your process. You need to close the filedescriptors first, in particular the connection to the X server in your child process. This means you likely cannot use forkpty , but have to use openpty(), fork(),close filedescriptors in the child process, logintty/()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文