ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
1 ¼³¸í
ÀÌ°Ç ÇöÀç Å͹̳¯ÀÇ À©µµ¿ì Å©±â¸¦ ¾ò´Â ¿¹Á¦ÀÔ´Ï´Ù. ½Ã±×³Î SIGWINCH °¡ ÇÔ²² »ç¿ëÇϽøé ÁÁ°Ú½À´Ï´Ù. 2 »ç¿ë¹æ¹ý3 ÄÚµå/* Copyright (C) Information Equipment co.,LTD. All rights reserved. Code by JaeHyuk Cho <mailto:minzkn@infoeq.com> CVSTAG="$Header: /usr/local/mutihost/joinc/modules/moniwiki/data/text/RCS/Code_2fC_2fterminal_5fsize,v 1.1 2007/01/09 02:46:10 root Exp root $" */ #include <sys/types.h> #include <sys/ioctl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> int main(void) { int s_check, s_width = 0, s_height = 0; char *s_env; struct winsize s_window_size; s_env = getenv("COLUMNS"); if(s_env != ((char *)0))s_width = atoi(s_env); s_env = getenv("LINES"); if(s_env != ((char *)0))s_height = atoi(s_env); if((s_width <= 0) || (s_height <= 0)) { if(isatty(STDOUT_FILENO) == 1) { do{ s_check = ioctl(STDOUT_FILENO, TIOCGWINSZ, &s_window_size); }while((s_check == (-1)) && (errno == EINTR)); if(s_check == 0)s_width = s_window_size.ws_col, s_height = s_window_size.ws_row; } if(s_width <= 0)s_width = 80; if(s_height <= 0)s_height = 24; } (void)fprintf(stdout, "terminal window size : %d x %d\n", s_width, s_height); return(0); } /* End of source */ 4 ´Ù¸¥¿¹Á¦
#include <signal.h> #include <sys/ioctl.h> #include <stdio.h> // À©µµ¿ì »çÀÌÁ ¾ò¾î¿Â´Ù. struct winsize get_winsize(int fd) { int i; struct winsize size; if (ioctl(fd, TIOCGWINSZ, (char *)&size) < 0) { perror("size get error\n"); } return size; } void sig_handler(int); struct winsize c_winsize; int main() { // Ç¥ÁØÀÔ·ÂÀÌ ÀåÄ¡¿¡ ¿¬°áµÇ¾î ÀÖ´ÂÁö È®ÀÎÇÑ´Ù. if (!isatty(0)) exit(0); // ½Ã±×³Î Çڵ鷯¸¦ µî·ÏÇÑ´Ù. if(signal(SIGWINCH, sig_handler) == SIG_ERR) { perror("error : "); exit(0); } c_winsize = get_winsize(0); printf("%d %d %d %d\n", c_winsize.ws_row, c_winsize.ws_col, c_winsize.ws_xpixel, c_winsize.ws_ypixel); // âÀÌ ÀÏÁ¤ »çÀÌÁîÀÌ»óÀÌ µÇÁö ¾ÊÀ»°æ¿ì Á¾·á½ÃŲ´Ù. if (c_winsize.ws_col < 80 || c_winsize.ws_row < 20) { printf("À©µµ¿ì »çÀÌÁî´Â 80, 20ÀÌ»óÀÌ µÇ¾î¾ß ÇÕ´Ï´Ù\n"); exit(0); } while(1) { sleep(10); } } void sig_handler(int signo) { printf("WINSIZE CHANGE\n"); c_winsize = get_winsize(0); printf("%d %d %d %d\n", c_winsize.ws_row, c_winsize.ws_col, c_winsize.ws_xpixel, c_winsize.ws_ypixel); } |
|
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|