블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
02-05 06:40
 

달력

« » 2025.2
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
 

최근에 올라온 글

최근에 달린 댓글







물론 내가 쓸 건 아니고... 후배들 선물용으로...

첨에 봤을 때는 애들이 무섭게 생겨서 어려웠는데 이제는 쫌 친한 후배들 생일 선물~~



Posted by 자수씨
, |

flex 로 간단한 위젯을 만들어 보려고 작은 시도를 해 보았습니다.

어찌저찌 만들었으나 crossdomain 문제... (어떤 사이트의 rss 를 읽어와서 뿌려주는 거였는데..)

ajax 로 데이터를 읽어와서 flex 로 넘겨주려 하엿으나 인코딩 문제 (rss 데이터가 euc-kr)

iframe 에서 rss 를 로드하여 넘겨주려 하였으나... IE 버전이 올라가면서 하위 iframe 내부에 access 할 수 없는 문제에 봉착하였습니다.


script injection 으로 인한 문제를 막기위해서 나온 기술들이 저의 시도를 무색하게 만들어버렸습니다.

-_ㅜ...

Posted by 자수씨
, |

연구실 사람들(광청, 종완), 영한이형, 명부와 함께 비발디 파크에 다녀왔습니다.

아직 슬로프가 3개 밖에 오픈하지 않아서 가격은 새벽권이 만원이였습니다.

사람들이 아주 많은 것은 아니였으나 슬로프가 적다 보니... 리프트 타기가 쉽지 않더군요...


이제 다음번은 어디로???


아참... 이번에 보딩하면서 새로 사야할 아이템들이 생각 났습니다.

시즌권 케이스, 집업 톨티, 톨티 ... 다음번 보딩 전에는 사야겠군요 후후후...



Posted by 자수씨
, |

WIndows 7 행사에 가서 받은 Windows 7 Ultimate 버전을 가지고 SENS P60 에 설치를 해보았습니다.

순조롭게 설치도 완료하고 대부분의 드라이버가 설치되었는데... 역시나 그래픽 드라이버가 말썽이였습니다.

7.10 버전부터 9.11 버전까지 모두 다운받아서 설정을 해보았으나... 실패...


하염없이 구글링하다가 찾아낸 결과물입니다.

ATI Mobility Radeon x1400 Windows 7 Driver


아주 잘 설치되네요... 쩝;;;



Posted by 자수씨
, |

이번시간에는 box와 border에 대해서 설명드리겠습니다.



16번째 줄 wborder() 함수를 이용하여 기존 보더를 초기화 합니다.
  - 17번째 줄 wrefresh() 함수로 윈도우를 갱신하고...
32번째 줄 box() 함수로 윈도우에 외곽선을 그려줍니다.
  - 윈도우는 외각선을 1씩 차지하기 때문에, 소스의 5행 10열의 윈도우의 내부는 3행 8열이 됩니다.

관련 함수 정의


각 함수의 파라미터는 아래를 참조하시면 될 것 같습니다.

<< 실행 결과 >>

Posted by 자수씨
, |

이번 시간에는 window 에 대해서 알아보겠습니다.



이전에 비해 추가된 내용 위주로 설명 드리겠습니다.

12번째 줄 newwin() 함수는 새로운 윈도우를 추가하는 함수입니다.
  - WINDOW *newwin(int nlines, int ncols, int begin_y, int begin_x)
  - 1행 1열의 윈도우를 10행, 10열에 생성한다는 뜻입니다.
13번째 줄 waddch() 함수는 기존의 addch() 함수와 비슷한 역할을 합니다.
  - 대신 앞에 w라는 prefix를 붙여 윈도우에 문자를 추가하겠다는 의미입니다.
  - 다른 여러 함수들도 앞에 w가 붙어 있는 경우에는 윈도우 관련 함수라는 뜻입니다.
18, 21, 24, 27번째 줄
  - mvmove() 함수를 이용하여 윈도우를 이동시킵니다.
30번째 줄 wrefresh() 함수는 윈도우를 갱신하는 함수입니다.
  - 윈도우를 갱신하지 않으면 화면의 출력 내용이 보이지 않게 됩니다.
33번째 줄 delwin() 함수를 통해 생성된 윈도우를 지웁니다.
  - 윈도우는 논리적인 개체이므로 굳이 지우지 않아도 될 것 같습니다.

<< 실행화면 >>



불사조군이라고 생각하며 그렸는데... 여엉...


Posted by 자수씨
, |

curses 터미널 입력 옵션 제어 루틴들 입니다.



ㅁ int cbreak(void) / int nocbreak(void)
cbreak 모드일 경우, 사용자에 의해 문자를 입력하는 즉시 프로그램에서 사용가능하며, erase/kill 과 같은 character-processing 이 수행되지 않습니다.. cbreak 모드가 아닐 경우, 줄 바꿈 또는 캐리지 리턴 입력이 있을 때까지 버퍼에 입력된 문자를 저장합니다.

ㅁ int echo(void) / int noecho(void)
사용자 입력에 대해 화면 출력여부를 설정합니다. 기본적으로 echo 모드로 설정이 되어 있습니다.

ㅁ int halfdelay(int tenths)
half-delay mode 를 설정합니다. cbreak() 함수와 유사하며, 바로 프로그램에서 사용할 수 있습니다.
함수의 인자 tenths는 1/1000 초로 설정을 하며 설정된 값동안 딜레이 후, 값을 반환합니다. (1~255 값을 입력)

ㅁ int intrflush(WINDOW *win, bool bf)
TRUE로 설정하여 활성화시 키보드의 인터럽트 키(interrupt, break, quit ??)를 누르면 모든 입력 큐는 flushing 됩니다.
(사실 번역이 안되서 잘 모르겟네요... -_ㅜ)

ㅁ int keypad(WINDOW *win, bool bf)
사용자의 키패드의 입력을 활성화/비활성화 합니다.

ㅁ int meta(WINDOW *win, bool bf)
Initially, whether the terminal returns 7 or 8 significant bits on input depends on thecontrol mode of the tty driver (see termio(7I)). (무슨 뜻 일까요...)

ㅁ int nodelay(WINDOW *win, bool bf)
getch() 함수를 non-blocking call 합니다. 만약 입력이 없이 준비가 된다면 getch() 함수는 ERR을 반환합니다.

ㅁ int notimeout(WINDOW *win, bool bf)
입력 escape sequence를 해석하는 동안, wgetch() 함수는 다음 문자를 기다리는 동안의 타이머를 설정합니다.
notimeout(win, TRUE) 가 호출되면, wgetch() 함수는 타이머를 설정하지 않습니다.
타이머 제한의 목적은 sequence 간의 기능 키로부터 받은 입력을 차별화 하기 위함 입니다 (???)

ㅁ int raw(void) / int noraw(void)
cbreak() 모드와 유사. 차이점은 interrupt, quit, suspend, flow control 문자들은 생성된 신호를 대신하여 통과되어진다. (????????)

ㅁ void noqiflush(void) / void qiflush(void)
noqiflush() - normal flush of input and output queues associated with the INTR, QUIT and SUSP characters will not be done
qiflush() - 이들 제어 문자를 읽을 때 큐를 flush 할 수 있다.

ㅁ void timeout(int delay) / void wtimeout(WINDOW *win, int delay)
주어진 윈도우에 blocking / non-blocking 모드로 읽기를 설정합니다.
delay가 0일 경우 non-blocking 모드로 읽어들이며, delay가 양수이면 delay 시간만큼 delay 됩니다.

ㅁ int typeahead(int fildes)
파일 디스크립터 flides는 typeahead를 대신 확인하는데 사용합니다. flides가 -1이면 typeahead를 확인하지 않고 완료합니다.






Posted by 자수씨
, |
키보드 특수키 입력을 받기위한 예제입니다.



08번째 줄 keypad() 함수를 통해 키패드의 입력을 활성화 합니다.
  - stdscr는 최상위 윈도우 전역값 (나중에 윈도우 강좌에서 설명), 두번째 인자 TRUE를 통해 활성화합니다.
10번째 줄
  - KEY_F(1)은 F1 키를 의미합니다. 소스상에서 F1 키가 입력되면 프로그램을 종료하는 조건이 됩니다.
11번째 줄 clear() 함수를 통하여 화면을 지웁니다.
13 ~ 26번째 줄
  - 각 키보드 입력에 따라 각 메세지를 출력합니다.



아래를 보시면 각 키들의 이름을 확인할 수 있습니다. 


이상입니다. 끝~


Posted by 자수씨
, |

입력 함수
ㅁ int getch(void);
문자 하나를 입력받습니다.

ㅁ int getstr(char *str);
문자열을 입력받습니다.

ㅁ int scanw(char *fmt, ...);
scanf() 함수와 유사한 역할을 합니다.


출력 함수
ㅁ int addch(chtype ch);
해당 위치의 커서에 문자를 삽입합니다.

ㅁ int addstr(char *str);
해당 위치의 커서부터 문자열을 삽입합니다.

ㅁ int insch(chtype ch);
해당 위치의 커서에 문자를 수정합니다.

ㅁ int insstr(char* str);
해당 위치의 커서부터 문자열을 수정합니다.

ㅁ int printw(char *fmt, /* arg */ ...);
printf() 함수와 유사한 역할을 합니다.


이정도만 알아두면 유용할 듯 합니다.

Posted by 자수씨
, |
이번 시간에는 curses input/output 에 대해서 알아보겠습니다.



이전 강좌에서 추가된 부분을 중점으로 설명하겠습니다.

10번째 줄의 getch() 함수의 리턴값을 ch에 저장한 후, 11번째 줄 addch() 함수로 화면에 추가합니다.
13번째 줄의 getstr() 함수에 의해 str에 문자열을 저장한 후, 14번째 줄 addstr() 함수로 화면에 추가합니다.

<<실행화면>>
실행을 하면 getch() 함수에 의해 문자 입력을 대기합니다.


'a' 란 문자를 입력하였습니다. addch() 함수에 의해 a가 화면에 출력됩니다.


"helloworld!" 라는 문자열을 입력하고 엔터를 입력하였습니다.
getstr() 함수는 엔터를 입력할 때까지 문자열로 입력받는 함수입니다.
addstr() 함수에 의해 화면에 출력이 됩니다.



이상으로 간단한 입출력을 알아보았습니다.


Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백