Hola.
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:
Gracias, de antemano.
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 (c) [Seleccionar]
#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.