나는 코드를 실행할 때마다 Ubuntu 14.04, gcc 4.8.2 및 Ncurses 5.9.20140118을 사용하고 있습니다.
attron(A_BLINK);
printw("Hi");
refresh();
터미널에 인쇄된 텍스트가 깜박이지 않습니다(또는 훌라후프). 그냥 일반 텍스트만 인쇄됩니다.
printw("Hi");
refresh();
기본 우분투 터미널인 xterm, gnome 터미널 및 Guake에서 동일한 결과를 테스트했습니다. "Blink Support" 또는 다른 글꼴이 포함된 특수 글꼴이 필요합니까?
답변1
$TERM
귀하의 문제는 귀하가 사용하고 있는 터미널 에뮬레이터와 귀하의 변수가 설정된 값과 관련이 있다고 생각합니다. 일부 샘플 코드를 사용할 수 있었고 두 조건을 모두 만족하지만 동일한 gnome-terminal
또는 terminator
.
샘플 코드
#include <ncurses.h>
int main(void)
{
initscr();
attron(A_BOLD);
addstr("Twinkle, twinkle little star\n");
attron(A_BLINK);
addstr("How I wonder what you are.\n");
attroff(A_BOLD);
addstr("Up above the world so high,\n");
addstr("Like a diamond in the sky.\n");
attrset(A_NORMAL);
addstr("Twinkle, twinkle little star\n");
addstr("How I wonder what you are.\n");
refresh();
endwin();
return 0;
}
이것이 내가 컴파일한 방법입니다:
$ gcc -o blink blink.c -lncurses
출력을 다음 명령으로 파이프하면 작동하는 것을 볼 수 있습니다 hexdump
.
$ ./blink | hexdump -C
00000000 1b 5b 3f 31 30 34 39 68 1b 5b 31 3b 33 31 72 1b |.[?1049h.[1;31r.|
00000010 28 42 1b 5b 6d 1b 5b 34 6c 1b 5b 3f 37 68 1b 5b |(B.[m.[4l.[?7h.[|
00000020 48 1b 5b 32 4a 1b 28 42 1b 5b 30 3b 31 6d 54 77 |H.[2J.(B.[0;1mTw|
00000030 69 6e 6b 6c 65 2c 20 74 77 69 6e 6b 6c 65 20 6c |inkle, twinkle l|
00000040 69 74 74 6c 65 20 73 74 61 72 0d 0a 1b 28 42 1b |ittle star...(B.|
00000050 5b 30 3b 31 3b 35 6d 48 6f 77 20 49 20 77 6f 6e |[0;1;5mHow I won|
00000060 64 65 72 20 77 68 61 74 20 79 6f 75 20 61 72 65 |der what you are|
00000070 2e 0d 0a 1b 28 42 1b 5b 30 3b 35 6d 55 70 20 61 |....(B.[0;5mUp a|
00000080 62 6f 76 65 20 74 68 65 20 77 6f 72 6c 64 20 73 |bove the world s|
00000090 6f 20 68 69 67 68 2c 0d 0a 4c 69 6b 65 20 61 20 |o high,..Like a |
000000a0 64 69 61 6d 6f 6e 64 20 69 6e 20 74 68 65 20 73 |diamond in the s|
000000b0 6b 79 2e 0d 0a 1b 28 42 1b 5b 6d 54 77 69 6e 6b |ky....(B.[mTwink|
000000c0 6c 65 2c 20 74 77 69 6e 6b 6c 65 20 6c 69 74 74 |le, twinkle litt|
000000d0 6c 65 20 73 74 61 72 0d 0a 48 6f 77 20 49 20 77 |le star..How I w|
000000e0 6f 6e 64 65 72 20 77 68 61 74 20 79 6f 75 20 61 |onder what you a|
000000f0 72 65 2e 0d 0a 1b 5b 33 31 3b 31 48 1b 5b 3f 31 |re....[31;1H.[?1|
00000100 30 34 39 6c 0d 1b 5b 3f 31 6c 1b 3e |049l..[?1l.>|
0000010c
설정으로 전환하세요 xterm
. 다음은 터미널의 스크린샷입니다.$TERM
vt100