Quand mon programme arrive à cette ligne:X renvoie les erreurs lorsque forkpty est appelé. (C++)
pid_t nPid = forkpty(&m_nMasterFD, NULL, NULL, NULL);
Sorties ceci:
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.
et se termine. Comme vous pouvez le voir, j'essaie de faire un pty pour lancer des trucs, mais ça ne marche pas.
De même, y a-t-il un moyen d'appeler forkpty()
dans une classe? (J'ai essayé dans les deux sens, mais ni travaillé.)
Je suis en train de programmer en QT C++ sur Ubuntu 9.10.
EDIT: Here's un lien vers la question avec le code qui a finalement fonctionné pour moi.
N'est-ce pas ce que 'O_CLOEXEC' est pour? – ephemient
Si vous exec() un nouveau programme, oui. Dans ce cas, il n'y a que fork(). – nos
Oh. D'une façon ou d'une autre, je pensais que 'forkpty()' avait un 'exec' final, mais non, bien sûr que non ... – ephemient