(SIGWINCH)는 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);
}
를 결정할 수 없습니다, y는 (항상 동일 크기는 변화하지 않았다). 또한 ioctl을 사용하여 크기를 결정하려고 시도했지만 아무 것도 변경되지 않았습니다.
내가 내 앞에서 많은 사람들이 때때로이 문제 http://www.mail-archive.com/[email protected]/msg11253.html 을 한 것으로 파악, 그들은 그 (변경은/etc/프로파일을, O (원문)!) 해결,하지만 때로는 없습니다. mac os x terminal에 대한 대안이 있습니까? 아마도 ncurses는 xterm 및 유사 제품 전용입니다.
:
는resize_term(size.ws_row, size.ws_col)
그래서 신호 처리기 코드가 같아야 호출해야합니다,getmaxyx(...)
데이터를 업데이트합니다. 터미널이나 Xcode의 가짜 용어로 실제로 테스트 중이십니까? – Geoffroyxcode에서 테스트 할 수 없습니다. 터미널에서. – badeleux