Estoy tratando de manejar una señal de cambio de tamaño (SIGWINCH)No se puede determinar el tamaño del terminal con ncurses
void Server::resizeSignalHandler(int a)
{
signal(SIGWINCH, SIG_IGN);
endwin();
initscr();
refresh();
clear();
int x,y;
getmaxyx(stdscr, y, x);
wmove(upScreen, 0, 0);
wmove(downScreen, y/2, 0);
wresize(upScreen, y/2, x);
wresize(downScreen, y/2, x);
wclear(upScreen);
wclear(downScreen);
waddstr(upScreen, "test1");
waddstr(downScreen, "test2");
wrefresh(upScreen);
wrefresh(downScreen);
refresh();
signal(SIGWINCH, Server::resizeSignalHandler);
}
Server::Server()
{
//ncurses screen initialization
initscr();
if (!upScreen) {
upScreen = newwin(0, 0, 1, 1);
}
if (!downScreen) {
downScreen = newwin(0, 0, 1, 1);
}
//adjusting screen when user resize terminal
signal(SIGWINCH, Server::resizeSignalHandler);
//configuring screens
Server::resizeSignalHandler(0);
waddstr(Server::upScreen, "lalfasdfsafd as");
waddstr(downScreen, "supreme!");
wrefresh(Server::upScreen);
wrefresh(downScreen);
}
Cuando estaba depurando el código, en resizeSignalHandler var x, y siempre eran los mismos (tamaño no cambió) También probé determinar el tamaño con ioctl, pero nada ha cambiado.
me di cuenta de que muchas personas antes que yo tenía este problema http://www.mail-archive.com/[email protected]/msg11253.html A veces, ellos resolvieron que (cambiar/etc/profile; O (sic)!), Pero a veces no. ¿Existe alguna alternativa al terminal mac os x, tal vez ncurses está dedicado para xterm y similar.
Puede hacer OSX término se comporta como xterm de manera que no es el problema. ¿Estás realmente probando en la terminal o en el término falso de XCode? – Geoffroy
No se puede probar en xcode. En la terminal. – badeleux