Al pasar el carácter Fin de transmisión (Ctrl + D) en la consola Eclipse CDT

Tengo una aplicación C ++, a la que debo enviar una señal de fin de transmisión.

Puedo hacer Ctrl + D en la consola, pero cuando bash eso dentro de Eclipse, no funciona.

Estoy usando Eclipse Galileo con CDT.

Parece ser un error aún no resuelto : error 159803 (resuelto en septiembre de 2015, para CDT 9.0)

Desde Eclipse 3.1 es posible señalar EOF (usando CTRL + D / Z – vinculable en las preferencias de las teclas) en la vista de consola, y lo probé con éxito con Eclipse 3.2.1 usando una simple aplicación de Java.
CDT, por otro lado, no reconocerá EOF cuando esté en la vista de la consola.
Sin embargo, hay una excepción .

Si ejecuto una aplicación local de C / C ++ y desmarco Connect process input & output to a terminal en la pestaña de configuración principal, la vista de consola reconocerá EOF .

Sin embargo, este cambio no afecta la vista de la consola cuando está en la perspectiva de depuración. Por lo tanto, durante la depuración aún me es imposible enviar una señal EOF a la aplicación en ejecución.

Aunque se considera “resuelto”, este comentario muestra que el problema persiste.


Actualización 4 años después (diciembre de 2014), Fernando González-Sánchez menciona en los comentarios :

La checkbox Solución temporal ya no está disponible en la interfaz de usuario.
El problema todavía está sucediendo en OpenSUSE 12 y Eclipse CDT Luna 4.4.1.


Actualización de marzo de 2015:

Muhammad Annaqeeb menciona en los comentarios :

Hay una nueva solución mencionada en la página de errores :

En Kepler 4.3 eclipse.buildId = 4.3.0.M20130911-1000 en Linux, el problema persiste en la consola de Java. Encontré la siguiente solución alternativa:

“Si deja la consola para enfocarse en otra vista y luego vuelve a enfocar la consola, entonces CtrlD (EOF) funciona como se esperaba”.

Acabo de encontrar una solución a este problema:

Cuando termine de ingresar sus entradas en la consola, haga clic en otra ventana (editor, Explorador de proyectos, etc.), luego haga clic en la consola. Tocando Ctrl + Z funcionará ahora.

Actualización de 2015: estoy usando eclipse luna 4.4.1 para Mac y EOF todavía no funciona en la consola. Simplemente congela el eclipse.

Una forma en que podría considerar enviar ctrl + d a la consola es haciendo una pequeña inyección de BASH en los argumentos de su progtwig. añadiendo algo así como “& sleep 10 && echo -e ‘\ x04 \ c’> / dev / stdin”, por ejemplo, esperará 10 segundos antes de enviar el comando ctrl-D. aunque también podrías modificarlo fácilmente para alguna otra condición no basada en tiempo. Además, puede abrir / dev / stdin desde su progtwig C ++ como un archivo, luego escribir el valor 0x04 en él y luego enrasar para obtener el mismo efecto de su progtwig.