#include #include #include #include void get_winsize(struct winsize* ws); void set_winsize(struct winsize* ws); int main(int argc, char** argv) { struct winsize ws; if(argc == 1) { get_winsize(&ws); printf("%u %u %u %u\n", ws.ws_row, ws.ws_col, ws.ws_xpixel, ws.ws_ypixel); } else if(argc == 5) { get_winsize(&ws); if(strcmp(argv[1], "-") != 0) ws.ws_row = atoi(argv[1]); if(strcmp(argv[2], "-") != 0) ws.ws_col = atoi(argv[2]); if(strcmp(argv[3], "-") != 0) ws.ws_xpixel = atoi(argv[3]); if(strcmp(argv[4], "-") != 0) ws.ws_ypixel = atoi(argv[4]); set_winsize(&ws); } else { fprintf(stderr, "Usage: %s\n", argv[0]); fprintf(stderr, "Usage: %s ws_ro, ws_col ws_xpixel ws_ypixel\n", argv[0]); return 1; } return 0; } void get_winsize(struct winsize* ws) { if(ioctl(0, TIOCGWINSZ, ws) < 0) { perror("ioctl"); exit(1); } } void set_winsize(struct winsize* ws) { if(ioctl(0, TIOCSWINSZ, ws) < 0) { perror("ioctl"); exit(1); } }