Estaba trasteando con los pty's y al hacer unos cuantos me he dado cuenta de que no puedo utilizar correctamente NCURSES o moverme por el input del terminal como desearía.
Buscando imitar a SSH he mirado su codigo para ver como lo hace, pero al imitarlo me sale prácticamente lo mismo. Ejemplo del codigo:
Código
#include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <fcntl.h> #include <pty.h> #include <utmp.h> #include <sys/select.h> int main(void) { int fdm, fds; openpty(&fdm, &fds, NULL, NULL, NULL); if ( fork() == 0 ) { close(fdm); login_tty(fds); dup2(fds, 0); dup2(fds, 1); dup2(fds, 2); close(fds); char *arg[] = {NULL}; execvp("/bin/bash", arg); } else { fd_set fd; while ( 1 ) { char put; FD_ZERO(&fd); FD_SET(0, &fd); FD_SET(fdm, &fd); select(fdm+1, &fd, NULL, NULL, NULL); if ( FD_ISSET(0, &fd) ) { read(0, &put, 1); write(fdm, &put, 1); } if ( FD_ISSET(fdm, &fd) ) { read(fdm, &put, 1); write(1, &put, 1); } } close(fdm); } return 0; }
Gracias, de antemano.