Что такое код ncurses_typeahead

Содержание

�������� � ncurses �� C++

� ������� ������ ������������: ����������� ������� ���������� ������������ ���� � ���������� ��� DOS �� C++, ��������� ��� ������. �� ������� ���� �� ������������, ������� ������, ����� DOS � Turbo Vision ���� ��, ����� ������ ���� � �������, ������������� ������ � ���������� � �������� ������������ ����������� ������������������ ���������� ncurses ��� ��������� �������������, � ��� � ������� � ��������.

��� ����� ncurses � ��� ��� �������

Ncurses (������������ ��������) � ��� ����������, ������� ����������� �������� �������� ����������� �� ������������� � ��������� ��� ���������� ������ �� ������ � ���, ��������, ����� ������������ ������������������ �������� ����� ������� ��������� ��� ����, ����� ����� ��������� ^[[ 0 ; 31 ; 40 m������� ������. ���� ����, ��� ��� ��������� ������ ���������, ��� ��� ��� � ��� ������ ���������� ������ ������. ������, ����� ���-�� ��������� �����, ������������ UNIX ������ ������� � ����������� ����� termcap (� � ������� terminfo) ��� �� �����������, ������� ������������� ���������� ��������. ���� ���� ��������� ����������� ��������, ����� ������������ ������������������ ����� ��������, � ���� ������� � ���������� ncurses, �������� ������������-������������ �� ��������� ������� ���� ���, ��� ������, �����-��������������. �������, ������ ���������� �����������, � ������� ��� ���������� ������������ ncurses, �������� htop, GNU Midnight Commander � ���������� ����������� ��������� ������������ ���� Linux, ���� � �����-�� �� ��� ����������� ������.

��� ����������

Linux

Windows

��� Windows � DOS ���� PDCurses, ������� ����������� ��������� ���������� � ncurses. ����� �������� �� ��������, ��� ��� ���� ��� ����������� ���������� �� ���.

��������� ��������

��� ���������� �������� ����� �� �������� ��������� ���� -lncurses , ����� �� ��������� �������������. �������� ���������� ��������� � ������������� � �����������, � �������� ������.

Hello World!

��� ��� �������� ������ � printw � refresh , ��, ������ �������. ���� � ���, ��� ��� ������������������ ����� �����, ���� ����������� ������� ������� ��� ����������� �������� �� ��������� ������ �� ������������ ������ (� �������), � ������ ����� (����� refresh ) �� ��������� ������ ��������� �� �������, ������� ������������� ���������� � �������� �����.

�������������

������ initscr ���� � ������ �������, ������� ����� ���������� ��� ������������ ������� ������. ���������� ���� ��������� �� ���, ����� ������ �� ������������ � ������������.

raw � cbreak

������, �������� �������� �������, ������� �������� ������������ �� �������� ������, �� ����������� �������� ���������� ������� ��������� ����� �� �� ����� �� ������. ��������� ���� ������� ��������� ��������� �������������. ������� ����������� � ���, ��� ����� �������������� ����������� ������������������ ����� CTRL-Z � CTRL-C. � raw ������ ��� �������� � ���������, �� ��������� ��������, � � cbreak ������ ��� ���������������� ��������� ��������� � ���������� ��������������� �� �������.

echo � noecho

��� ������� ������������ ����� ������������� �� �����. noecho ��������� �����, echo �������� ��������. ������ � ���������� ������������ noecho � ����� ������������ �������, ����� ������� ����������.

keypad

��������� ������ ������ F1, F2, ������� � ��. ����� �������� ��� ������������ ������, ���������� ��� keypad (stdscr, TRUE) .

curs_set;

�������� � ��������� ����������� ������� �� ������, ����� ��������� ������ ���������� curs_set (FALSE)

�����

� ncurses ���� ������� �������� ��� ������ � �������. � ������ �������, ��� ����, ����� ���������, �������������� �� � ������� ��������� ������� ������ ������, ���� ������� has_colors () , ���� ��������� ������, �� start_color() � �������. ������ ������� � ncurses � ��� �������� ����, ��� ����������, ����� ������ �� ������� � �� ����� ����. ����� ����������� ������������� ��������:

�� ������� �������� ����, ������� ����� ������� �� �������, ������, ���� ���� ������ ���������, ����� ������ ������ ��������������� �� �������:

���� �������
COLOR_BLACK
COLOR_RED 1
COLOR_GREEN 2
COLOR_YELLOW 3
COLOR_BLUE 4
COLOR_MAGENTA 5
COLOR_CYAN 6
COLOR_WHITE 7

�� � ���� ����������� ����� ������������ ��������� ��� ����� ��������� �����, �� ����� ������� ����! ��� ��� ��� ��������:

RGB-�������� ����� � ��������� �� 0 �� 1000. ���� ���-�� ����� �� ���, ��� ��� �������� �� ����� �������� � �������, �� ������� init_color ������ ERR .

���� � ��� ������������ ������, ������������ � curses. ���� � ������ ��������� �� �������� �� ���� � �������� � Turbo Pascal, ������� ����� ������� �� ������. ��� ������������� ncurses, ��������� ������������ ���� stdscr , ������� �������� �������������� ��������� ��������� (���������� ������) �������� � ���� ��������. �� ��� ���� ��� ����� ����� �������� ������ ��� ������ ����, ���������� ��� ��� �������� � ������� � ��.

������ ��� ������� ������ � stdscr � ������� ������� �������. ���������� ����� refresh , �������� ������ � stdscr .

����� �������� ������ ����, ��� ���������� ����� �� �������� � ���, � �� � stdscr , �������� �������, ������� ���������� �� w � ��������� ��� �������� ����, � ������� ������������ ��������, ��� ��� ��� ���� � ������ win :

���� � ������ win ������� � ����, ��� ��� ��� ��������� �� ������ ������ � ����� � ����. ����� ��������� ���������� ����������� �� ���� ��������, ������� ����� ��������� � � stdscr , � � ������ �����.

����� �������, ���������� ������������� ������������ ��� ����������� ��������� ��� �������� ����������� � ���������, ��� ����� ��������� ������������ � ������������� � ������ ����.

���������� ���������� �� Curses

���������� � ��������� �����������, ���������� � ���������, ��-�������� ����� ��������� � ������� ����������� � ������������ � ����������� �����������. Mutt , irssi , vim , tmux � ������ ������ �������� ������������ � ������������ ������. �� CPAN ���� ������, ����������� ��������� ���������� � ��������� �����������, � ��� ����� ������ Curses , ���������� �������� � ��������������� C-���������� ncurses .

�������

��� ����� ������ ��� � �������� �����/������ ���������� �������������� ������������������� ��������� (Teletype, ��� ���������� TTY), ������� ��������� ������� ����� � ���������� � �������� �� ������ ������ �� ��������, ���������� �� ���. ����� �������� ��� ������ ����������, ��� ������� ������� ���-�����, �� ������� �� ������������� ������� ����� ���� �������� �������. ����� ������ ������������ ���������� ���� DataPoint 3300, ������� ���� �����, ����������� �������� 25 ����� �� 72 �������. �������������, ��� ���� �������� ��� ������ �� ������ ������� TTL-���������, � ���������� ������� ��������� ������ � ��������� ������ ���������� ������� ��������� ����� ����� �� ����������� ������ ���������� ����������������.

��� �������, � ������ ���������� ��� ����������� �����-���� �� UNIX-������ ������������ ��������� ����������. ��� ��������� ��������� ��������� ��������, ���� � ����� ������� ��� ������ � ����������� ���������. �������� ������������ �������� ������� � �������� ���������� �� ������ �� ��������.

���������� ��-����� �� ������ ������� ���� �������� VT100, ��������� ��������� DEC � 1978 �. �������� ����������� � �������������� ������ ����� ���������������� ���������, �������� �������� 80 ��� 132 ������� � ��� � ����������� ��� ��������� �������� �������� ASCII, � ����� ����� ����������� ������������������� (escape-�������������������), ������� ���� ��������������� ANSI � ���� ��������� ECMA-48. Escape-������������������ �������� ��� �������� �� ���� ������� Escape, ������� ��������� ����� �����, ������������ ����������� ������������������. ����������� ������������������ ��������� ����������� ������, ������� �����, �������� ������� �������� ��� ���� ������ �������� ������, �� ������� ���������� ��������� ����������� �������� ���� ���� � �������. ��������, ������������������ ����� ESC[1m ����� ������ ����� ��� ����������� ��������� ��������, � ESC[0m ���������� ��� ������������� ��������.

����������� �������������� ������������� �������� � �� ���������� �� ������ ������� ���� � �������� �������� � ��������� ���������������� �����������. � ������� �� ���������� ����������, � ��������� ���������� � ������� ASCII -�������� ����� ���� ���������� ������� ����, ���������� ����, ���� ��� �������, � ����� ������ � ���� �����.

� ������ ����� ���������� ����� ��������� �������� � ���������� ���� �� ����� ������ ��������. � 1978 �. ���� ����, ��� ������ ��� ��������� ���������� vi ��� Berkeley Unix, ������� ��� ��� ��������� ������ ����� ���������� � ��������� ���������� ��� ��������� termcap, ������� ����� ����� ������ �������� ������������ ���������� � ��������� ������������� ���������, ����������� �� ���� ���������. Termcap ����� ����������� ��������� ������ ������ ���������, ���������� ������������������ escape-����� ��� ����������� ������� � �.�. ����� �� termcap ��������� ���������� terminfo, ������� �������� ���������� ����������� termcap � ����� ������� �������� � �������� ���������. ������ terminfo �������� ������������ ��������������� � UNIX-��������.

� 1980 �. ������� ������������ �������� ���� Rogue, ������� ���� ����� ������ ����� rogue-�������� ���, � ������� ������� �������� ��������� ����������, ��������� � ��������� � ���� ���������. ���� ��� ������ ������������ ��������� �������, ������� ������������ ���������� �������, �������� � ������� ���������� ��������������� ASCII-��������� | � — . ���� �� �������������, ��� �������, ���������� ��� ���� ������ ����������, ������� ���������������� �� ������ � ���������� ����� ���������, ������� ����������� ������� ���� ��� ������ ��������, ������� �� ���� ��� ������ �� ������ � ���������� ������. ���������� �������� �������� curses (����������), ��� �������� ���������� �� �������������� �cursor optimization�. ������������� curses ���� �������� �� termcap. � ������� �� termcap, ������� ���������� �������� ��������� ����� ������ � ��������� ����������, curses ������������� �������� ������� C API.

����� ��������� ���������� pcursesPDcurses, ������� �������� ���������� �������������� BSD curses. � 1991 �. ������ ��� pcurses ���� ����������, � � 1993 �. ��� ���� ������������� � ncurses, ��� ���� ����������� �� new curses (����� curses), � ����� ����������� � ������ ������� GNU. �� �������� � ncurses ��������� ������� ��� ������ ������ ����������������, � ��� ����� � Perl-������ Curses, ������� ��������� ������������ ���������� � Perl-����������.

������� ������������� ���������� ���������� ������������ ����� ��������� �������������, �� ��� �� ����� �������� ���������� � ���������� ������������ ��� ���� �������� ������� � ����, ��� ���� ������� ��������� ��������� � ���������, ������� ����������� ������������� ������ ������ ����� �������, ��������, X Window. ��� ��������� ���������� ������������ ���������, ���������� ��� ������ � ���������, � � ������ ��������. �������� ���������� ����������� ��������� ��������� � xterm, rxvt, � ����� ����������� gnome-terminalkonsole.

������������� ���������� ���������� � ��������� ����������� ��������� � �� ����������� ����. ����� ���������� ��� top, vim, emacs, mutt, irssi, moc, midnight commander ���������� ������ � ������ �� ������������ ���� ������ ������������. ������������ ���������� ����� �������� ������ ���������������� ����� � ������ ���� �� ����� ������ ���������, ������� ���������� VNC ��� RDP. � � ������� �� ���-�����������, �� ������� �� ������� ������� ���������� ����������� ������ � ������������ ����������� ��� ����, ����� ������������� ��������� ����������� ����������� ���������.

���������� ���������

��������� ����������� ��������� �������� �������� ������������ � ������������ ������� ���������� �� ���������������� ������, �� � UNIX-�������� ������� ��������� �������������� ���� ���������� ���� /dev/tty* . ��������� ������� ���� �������� �� /dev/tty[0..NN] , ���������������� ����� �� /dev/ttyS[0..NN] � �.�. (�������� �������� �������� �� ���������� ���������� UNIX-�������). ��� ������� ������ ���������� ���������� ����������� ��������� �������� ������, ����������� ������������������� � ������ ��������. ������� ��������� ������ ������ ���������� ����� ������� � ������� ������� stty :

��� ���������, ������� ���������� ������ � ����������, �� ��������� � �����-�� ���������� �����������, ��������� ��� ���������� ���������������. � ����������� UNIX-�������� ��� ��������� ��������� �� ������� �������� ���� ���������� ��������������� � �������� ������� devpts, �������� /dev/pts/0 , c ������� ������������� ����������� �������� ����������� �����/������ STDIN , STDOUT � STDERR ����������� ���������� �������� ���������. �������� ��������� ����������, ����� ����� ��� ���������, ����� ����� ������ ������ (���������� ����� � �������� � ������) � ������ ���������. ��� ���������� �� � ��������������� ���������� ��� �������� ������� �������� �� �� � ��������������� ��� �� ����� ������ �������� ���������.

Perl Curses

Perl-������ Curses �������� �������������� �������� � �-���������� ncurses. �� ������������ POD-������������ ����������� ���������� ������, ��� ��������������� ���������� �� Curses , ��������� ���������������, ��� �� ������ ������������ ������������ �� ����� C-���������� ncurses.

������ Curses , �� CPAN ���������� ��� ��������� �������������, ������� ��������� ������������� ���������� � ��������� �����������. ����� �� ���������� Curses , �� ����� ����� ��������������� ���������, ������� ��� ����������. ��� ����� ������ ��� Curses::UI � Curses::Toolkit . ���� ����� ������, ������� ������ �� ��������� � ncurses, ��������, Tickit . ���� �� ���������� �������� ������� ���������� ����������, ��� ����� ������� �������������� ��������� ����, ��������, ����, ����, ������� ��������� ������ �� �������, �� ��� ������, ��������, �������� ������ ����� ��� �������������. ���� �� ����� ������ �������� ������������ ������������ ������ ����������, ���, ��������, � ���������� top , �� ������������� Curses ����� ���� ��������������.

���������� Curses �������� � �������, ������� �������������� � ���� ������������� �������, ������ ������� ������� ������ � �������� �� ������ ��� ������ �������. ������ ���������, ������� (0,0), ����� ����� ������� ���� ������. �� ������ ����� ���� ������ ���� ��� ��������� ���� � ������� � ������������� ��������, ��� ������� ���������� ���� �������� ������.

����� � Curses

��������� ������� ���������� �������������� ������ ���������� � ��������� ������:

initscr � ������� ���������� ����� curses, ������ ���� �� ���������, ���������� ������� ������ � ������������� ������� ������� ������� � ����� ������� ���� (0,0);

cbreak � raw � ������� ��������� �������������� ����, � ���������� ����� �������� ���������� � ������� ��������, ��� ���� raw ����� ������������� � ����������� ��������� ������, ����� ��� Ctrl+C � Ctrl+Z ;

echo � noecho � �������� � ��������� ����� ����, �.�. ����� �� ����� �������� � ���������� ��������.

���������� Curses ����� ��-���������, � ���� ������ ������ ������������� ���� �� ��������� ����� initscr ����� ������������ ����� new :

������ ������� �-���������� ncurses ����� ��������� �������� ����� � ��� �� ������� � ���������� w, mv, � wmv. ������� �������������, ��� ���������� �����-���� �������������� ��������: w � ������ ����, mv � ���������� y, x ������� �������. � Perl-���������� Curses ����� �������� ������� ���� ���������� � ����, �� � ������������� ����������� ���� � ���������:

����� ������� �������� �������� ���������������, � �� ����� ������������ ��� ������ ��� ���������������� � �������������� ��-����������. � ������������ Curses ������� ������ ������ ������� � �������, ����� �� ��� �������� ����������������, � ����� � ���. �� ���� ����������� �������� ����� �������������� ��-���������, ������� ���� ������������ ������ ����� �������, �� ��� ���� �������������, ��� ������� �� �������� ���������������.

���������� ������ ����������, ������� ������� ��������� � ����� ������, ������� ���� ������������ � ��������� ������:

���������� ������ ����. ����� keypad �� ��������� ������ � ��������� �������� ��������� ����������� ������, ����� ��� F1 , F2 � �.�. ����� getmaxyx ��������� ���������� ������������ �������� ��������� �� ������, �.�. ������ �������� ���������. ����� addstr ��������� ������� ������ �� �������� ��������� �����������. ����� refresh ���������� �� ��, ��� �� ������ �� �����. ����� getch ������� ������� ������� � ���������� �������� ������. ������� endwin ��������� ����� curses, ��������� ���������� ���������� ������.

���� � �������

���� � ������� ������������ ��� ����, ����� ���������� ����������� ��� ��������, ������� ����� ���������� ������ ����, � ����� ��� ����, ����� ��������� ���������� ������ ����.

��� �������� ������ ���� ������������ ������� newwin :

��� $rows , $cols � ���������� ������ � ������ ����, � $y , $x � ��������� ���� �� ������.

���� ����� �������������, ��� ���� � ����� ����������� ����� ������������ ������� ���� ����, ������� ���� ��������� ���������. ���� ��������� ������� ���� ������ ������� ����, �� ����� ������������ ������� �������� ������� subwin ��� derwin :

������� subwin � derwin � ���, ��� � derwin ���������� ������� �������� ������������ �������� ������ ���� ������������� ����.

��� �������� ���� ��� ������� ������������ ������� delwin

���� ����� ���������� �� ������ � ������� ������� mvwin ( mvderwin � ��� �������):

�������� ���������� ���� ����� � ������� ������� clear :

���������� ����������� ���������� ������� ���� � ������� ������� box :

��� ������ �������� ���������� ������ ��� ������������ �����, � ������ � ��������������. ���� ������������ �������� 0 (��� undef ), �� ������������ ������� ������ �� ���������.

���� ��������� ������ ��������� ������� ��� ���� ������ � ����� ����, �� ����� ��������������� �������� border :

��������

��� ������� ���������� ������� ����� ���� ����������� ��������, � ��� �����:

  • A_BOLD � ����� ���������� �������;
  • A_NORMAL � ���������� ����� �������;
  • A_DIM � ����� ���������� �������;
  • A_UNDERLINE � ������������ �����;
  • A_REVERSE � ��������� �����;
  • A_BLINK � ��������� �����;
  • A_INVIS � ��������� �����.

�� ��� ��������� ������������ ��������� �������� (��� �������, A_NORMAL ��������� � A_DIM , � ��������� �������� ����� ���������� �������� ����������).

���������� ���������� ������� ��� ����� ��������� ����� �������� attron :

����� ���� ��� ������ ������ � ������ ���� �������� ����������� ��������� ��������. ����� ��� ��������� ��������� ����� ������������ ������� attrset , �� ������ ������� ������� ��� ������ ��������, ������� ���� �� ����� �����������:

��� ���������� ����������� ��������� ������������ ������� attroff :

�����

������ ��������� ����� ��������� �����. ��� ����, ����� ����������, ������������ �� �������� ����, ����� ������������ ������� has_colors . ���� ��������� ������ � ��������� ������������, �� ����� ������� � �������� �������� ��������� ���������������� ����� ������� ������� start_color :

��� �������� ������� �� ���� ������ (���� ���� � ���� ������) ������������ ������� init_pair :

���������� ��������� ������� ������ ��� ������ ����� �� ��� �� �������� attron :

�������� ������� ���������� 16 �������, ������ ������� ������ ������ 8, � �������������� ����� ���������� �� ���� ������������� ���������� ������� ( A_BOLD ):

���������� ����������� �������������� ����� ������� ���� � ������� ������� init_color , ������� ��� ��������� �������� ����� ������������� �������� ������������� �������������� ��������, ������� � ������ ������ � ��������� �� 0 �� 1000:

�� ��� ��������� ������������ ����� �����������, ������� ����� ���������� ������ ������� ������� ��������, ������������ �� ����� ����������� � ������� ���������, � ������� ������� can_change_color .

��������� �����

��� ��������� �������� ��������� ������� ������������ ����� getch . � ������ ���� ���� ������������ ��������� ����������� ������ ( F1 , PgUp , PgDown � �.�.) � ������� keypad(1) , �� getch ���������� �������� ��� ����������� �������, ��������, �������� 338 ��� PgDown . ���� �� ��������� ����������� ������ ���������, �� getch() ����� ���� ������ ��� �� escape-������������������ �������.

���� �� ����� ����������� ������ Unicode, �� getch ������������ ���� ������ ���� ������������������. �������������� ��� ��������� Unicode-�������, �������� ���������� ������������� �� ���� ����, ����������� ��� ���������������� ������ getch :

� Curses ���������� ��������� ��� �������������� ������, � ����� ������� KEY_F , ������������ ��� F* -������. �������� �������� ����� ����� � ������������ Curses , ��� ��� ����� ������� KEY_ .

� �-���������� ncursesw, ���� ������� get_wch , ������� ����� ������������ ���� ��������� ��������, ��, � ���������, ��� �� ���������� � Perl-������� Curses .

� ������� ������� halfdelay ����� �������, ����� ����� (� ������� ����� �������) getch ������ ������� ����� �������. ���� ����� ��������� �������� ������� �� ������, getch ����� �������� ERR (-1).

��� ��������� ������ �������� �� ������� �������� ������ (��� EOF ) ����� �������������� ������� getstr :

���������� ��������

�������� ������� ���������� ������� ����� � ������� getyx :

���� ���������� �����-���� ������� ������ �� ����� ��� �������� ���������, �� ����� ������������ ������� � ������� ������� �������. ������ ����� ����������� �� ������ � ������� ������� move :

������� ������

���������� ����������� ������� ������ ��� ��� �����. ��� �������� ���������� ���������� ��� ����������� ���������.

������� clear ������� ���� �������:

������� clrtoeol � clrtobot ������� �����, ������� � ������� ������� ������� �� ����� ������ � ����� ���� ��������������:

������� deleteln � delch ������� ������ � ������ �������������� �� ������� ������� �������:

������� insdelln ��������� ��������� ����� ������ �����, ������� � ������� ������� ������� (��� �������, ���� �������� �������������).

��������� ������� ����

Curses ��������� ������������ �������, ����������� ��� ������������� ����, ����� ��� ������� ������ � ����������� ���������. ����� ������� ��������� �������� ���� ���������� ������ ����� �������, ������� ����� ����������� ���������. �������� ��� � ������� ������� mousemask :

����������� ������� ��������, ������������ �����, ����� �� ��� �� �������� getch . ������� getmouse ��������� �������� ��������� ������������� �������, ���� ������ ���������� �� �������������� ���������� ���� (�� ����� ���� ���������), ����������� ���� � ��� ���������� � ��������������� ���� �������.

��������� ������� ������

��������� �������� ���������� ���������� ����������� ������ ������������ ���� ��������� ���������, �� �� ����� ������ ���������� ����� ����������� ��������� �������� ������, ����� ������������ ����������� ���� ��������� ��� �������� ���������. ��� ���� ������� ���������� ������ SIGWINCH , ������� �������� ��������� ��������� ���������� ���������� �� ��������� ������� ������.

���������� Curses ������������� ���������� ����� ������� � �������� ������������ ������������ ���� ��� ����� ������ ������. ������� �� ������ ��� ����� ���� ��������� ���������, ������� ��� ����������������� ���������� ����������� ����������� �������� ���������� �� ������������ ��������� �������� ������ � ������� getch ���������� �������� KEY_RESIZE :

�� ����� �������������� ���������� ������� SIGWINCH � ���� ����������, ��������� ��� ������� � ���������� ������ ���������� ����� ��������� �������.

������, ���� � �����

� ������ ������� ncurses ���������� �������������� ����������, ����������� ����������� ncurses:

  • ������. ������������ ����� ����, ������� ����� ����������� ���� �����, ��� ���� ����� ������� � ����� ������� ������� ������, �.�. ����������� ������ ��������� � �������. ������ ����� ��������, ����������, ���������� ������ � ������.
  • ����. ��������� ������������� ������ ����� ���������� ��������� ���� � ���������� �����������.
  • �����. ��������� ��������� ��������� �������� ��� ����� ������ � ���� ��������� �����, ������� ����� ��������� � �������������.

��������� �������� ���� ���������� ����� ����� ����� ��� ��� ����� ������, �� ������ ��������, ���� ���������� ������� ��������� �����������, ����� ���������� �� ����� ������ ������������ �� CPAN, ��������, Curses::UI ��� Tickit .

���������������� � ncurses: ������ ���� 0

����������������

������ ���� ������������ 1 ����� 2013 ���� � 12:00, � ��������� ��� ��������� 9 ������ 2015 ���� � 11:49.

�������� ���������� ������ � �������������� ���������� ��������� ���������� �������� ��������� ����������� ncurses: ����������� ����������, �������� �������, ����� ������, ���� � ������� ����. ������������ ������� ���� � �������������.

����������: ��� ������ ���� ������� ������������ � ����������� ������� �Open Source� �� ������� ���������� ������������� � ��������� �� nixp.ru �� ������������ � ���������.

������ ����� �������� �����-������ ���������, �� �������� � ������������ ����������� ����������� �������� ����� Qt ��� GTK, � ������������ �������� ����������� ������ (printf, cout) �� �� ��������. ��� ����? �� ������ �������� ncurses.

� ������������ �������, � ������, ������������ ���������� ��� ��������� curses. ������ � ��������� UNIX-���� ��� ������. �� ����� �������� curses ���������� ������ CRT ��� Pascal, � �������� � ����������� ���� �������������� � ������� (�� ������ ���������) � �����������. �� �������� � �� ��������� �������� ��� ��������� pcurses, � ����� (� 1993 ����) � ncurses (new curses), ������� ������� ���������� ��� ����� ������� GNU (http://www.gnu.org/software/ncurses/ncurses.html). Ncurses ������������ �������� ������� ����������� �������� � ����� ���, ��������, �������� �������� Midnight Commander � ���-������� lynx. ������ ��������� ��� ncurses �������: ��� ���������� �������� � ����� ������������ *nix, � ����� ������� � ��� ������������ �� ������� ���� ��� ������ �����. � �����, ����� ��� ncurses � ����� �� ����!

���������� ncurses � ����� ��������� �� �� ��� �++ ����� ������. ���������� ������������ � ��������� ��������� #include , � ��� ���������� ������� -lncurses ��� ��������:

�������, ����, ����� ���� ����������� ������������ ����� ncurses. � Debian � Ubuntu ����� � ���� ���������� ncurses-dev:

��� ������ ��������, ��� ����� ��� ���� ����, ������ ������������ �����-������ ������� ������ ����� autotools ��� Scons. � ������ ��������� (� ����������� �), � �������� � ���������� ��������� ����� ������� ���� ��� ��������� SConstruct ������ ����������:

������ ��� ������� � ��� �� �������� ������� scons ����� �������������� ��� .cpp-����� � ���������� � ������������ ncurses � ������ ������� (� ������� � �other-libs�). ��� ������ � ��������� ��������� ���� ��������� � ������� root:

��� ������������� ncurses ���� ����� ���������� ��� �������:
1. initscr(); � �������������� ������ � ��������. ��� ������� ��������� �������� ����� ������, ��������� ���������� ��������� ��������� ����������, � ncurses ����� ������� ������ � �����-���� �� ��� ���� ���������� ��� ��������� � ���������������� ��� ����. ����� initscr ���������� ��������� WINDOW *, ������� ����� ����� ������������ � ������ ��������. � ��������� ��������� getyx() ��� ��������� ��������� �������, putwin() ��� ���������� ���� � ����, getwin() ��� ������ ���� �� �����, copywin() ��� ����������� ����������� ������ ���� � ������ ����� ����, initscr() ������� ����.
2. keypad (stdscr, TRUE); � ���� ��� ������� keypad(), �� ������� ������������� ������� ������ ���� F � ���������. stdscr � �����������, ������������ � ncurses ��������� �� ���� ��� ����������. ���� �� ������� keypad � ���������� TRUE, �� ������� ����� getch() ������ ���� ������� ������� ����� ���������� escape-������������������.
3. noecho(); � ���� �������, �� ����������� ������� ������ �� ����� ������������ �� ������ �������������. ��� ���������� �����, ���� �� ������ ���� ������������ ������� �� ������� (��������, ���������� ����������� ���� � ���� ��������).

��������� ������ � ����������� ncurses ������� ������� ������� endwin(), ������� ��������� ��� �������������� ����������� ������� � ������ �������� � ��������� �� ������������� ���������� ����� ����������.

��� ���������� ������� �� ������� � ����� ����� ������������ ������� getch(), � ��� ���������� �� ����������� ���� � wgetch(). ���� �������� �������� ���:

� ���� ������� ����������� ��� ��� ���� ����������� ������� �������: ��������������� �� �������, �� ���� � �� ����������� ���������. ���� ������� noecho() ���������, �� ������� ������� ����� ������������ �� ������, ����� � �� �����.

��� ������ ������ � ������� ���� ����� ���������� ������� printw(), ������� ��������� �� �� ���������, ��� � printf(), �� ���� �� ������ ������������� ����� ��� ������. ��� ����� C++ (std:string) � �������� ��������� ���������� ���� ���������� �� ����� ������� c_str(), �� ����:

��� ������ ������ ��� ������������ ������� �\n� ������ �������� � ������� ������, �� ��������� ���������� �������, ��� ��� ��������� ����� printw() � ���� ������ �������� ������� ������. ������� addch() ������ ��� ������ ������ �������, ����������� � ���������. ����� ����� ������ ��� �������� ���������� (������ ������������� � ���������� � ������� ����������� OR):

������� ������ �� �������� ����������� ����� ���:

�������� ������ � ��� ���� � ����������. ��� ��������� � ��� printw(). ��� ����� �������� ��������?

������� ����� �������� ��������� ������ ncurses, ������� (������ ����� initscr()) �������:

������ �� ��������� ������� �� 8 �������� ������ (COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW, COLOR_BLUE, COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE), � ����� ���������������� ���������� ���������� COLORS � COLOR_PAIRS. ��������, ����� ������ ������ ������� ����, ������, ��� ������� �������� ����� ���������� ������� ������ � �����������, � ������� ������� � ������ � ������� �������.

��� ����� ���� ������� ��� ��� ���������� ��������� �����. ������ ����� �������� ������� ���� ���� � ������ ��� ����, � ������ � ����� ���� ���� � ������ ��� ����:

������ ��������, ��� ���� ������ �� ���������� ���������� ������. ����� ����� ������� � ����� ��� ��������, ������������ �� ������ ��������. ������� ������ �� ��������� ������� ��������� (test.cpp):

��������� ����� ����������������, ������ ������� ������� Enter ������������� ����� ‘\n�, � �� KEY_ENTER. ��� ����� ������� ������. ���� ��� ������������� �������� ������� nonl(), �� ����� ����������� Enter ��� ���:

���� �� �������� nonl(), �� ��� ���:

� ��������� KEY_ENTER ��������� � ����� �������� ������� � �����, �������� �� ������������ ‘\n� � ����� ������ �������� ��� UNIX-������.

���� � ������� ����

��� ����� ��������� �������� � ncurses ������������� ������� scanw(), getstr() � ������. ��������, ����� �������� ������ � ������ str, ����� ��������� ���:

��� ��������� ������� ���� ������� ����� �������� �������������:

����� ����� � ����������� ������� �� ������� ����� ��������� ���:

������ ������ ���������������� ��� ������������� ���������� ncurses. ���������� ����� ��� ��������������� ��������� ��� �������� ���������������� ��������� ���������� �� ������ ncurses: menus (��� ����), panels (��� ������� ��� ������������� ����), forms (��� ����� �����). ������������ ��� � ���������� ��������������:

��� ����� ��� ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead — Specify different filedescriptor for typeahead checking

Description int ncurses_typeahead ( int fd )

This function is EXPERIMENTAL . The behaviour of this function, the name of this function, and anything else documented about this function may change without notice in a future release of PHP. Use this function at your own risk.

Warning

This function is currently not documented; only the argument list is available.

��� ����� ��� ncurses_typeahead

������� ��������� ������������ ���������� ��� ���, ��� ������ �����

  • �������-������2000+ ������ �� ��������
  • ����-������300+ ������ ��� ����������
  • �����-�����200+ ������ �� ��������������
  • ����� � ����� �������� ������� � ������ ��� ����������� � ���������������� �����
  • ��������
  • �����
  • ����� jQuery ��� ����������

� ���� ������� �� ������� ����� �� Javascript ���������� jQuery.

�������� ������ ������ �� jQuery

������� �� �� ������ ��� ���������� � ���������� TypeIt � ���������� jQuery �������. � � ������� ����� ����������� ����� ������. ���� �� ��������� ���������, �� ����� �������� ����� ������������� �������.

��������� ����� �� jQuery

jQuery ������ ��� �������� ��������� �����.

�������: ������������ � �������� �� JavaScript

������� �������, ��� �� ������� ����� ������� JS ��������� ��� ������������ � ��������������� ������������� ����� JavaScript.

������ ��������� �����

jQuery ������ ��� �������� ��������� �����.

AJAX � PHP: �������� �����

������ ���� ��� ����������� �������� ����� ����� PHP � jQuery ajax.

Stimed � ����� � ����������� �� ������� �����

���������� ���������� � ������� ������� ����� ������ ����������� ��������� �������� ������ ����� � ����������� �� ������� �����.

jQuery ������ ��� ����������� ������ ������������ �����

��������� jQuery ������, ������� �������� ������� ��������� ����������� ��� �� �������� �� ������.

��� ����� ��� ncurses_typeahead

������ 25% �� ��� ������ �������� �� ��������� STDCITF

����������� ������������ ��� Linux

Sven Goldt, Sven van der Meer, Skott Burkett, Matt Welsh

8.8.1. ����� �����

* int keypad(win, bf)

TRUE ������������ keypad �� ���������� �� ����� �������� �����. ��� �������������� ������ � ������� keypad ncurses ������ ��� �������, ������������ ��� KEY_* � ncurses.h. ��� ����� ������ ��� ���������� ��, ������ ��� �� ������ ����������� � ������������ �������� ������, � ���������� ������.

���� TRUE, �� ���� ������, ������������ getch(), 8-������������ (������� ��� �� �����������).

������������� ��� ������� ����� ��������� CBREAK. ����� CBREAK ����������, �������� ���� ���������� �������� ���������, ����� ��� — ����� ����������� �� ��������� ����� ������. (���������: crmode() � nocrmode() ���������� ��� ��������� �������������, �� ������������ �� �����.)

������������� ��� ������� ����� RAW. RAW — ��� �� ��, ��� � CBREAK, ������ ��� ��������� ����������� ��������.

��������� echo() ��� ����������� ����� ������������ � noecho(), ����� ��� ������. * int halfdelay(t)

�� ��, ��� cbreak() � ������ � t ������.

* int nodelay(win, bf)

�������� ��������������� � ������������� �����. getch() ������ ERR, ���� ���� �� �����. ���� bf ���� FALSE, �� getch() ����� ����� ������� �������.

��� ������� ������������� ������������ ������ halfdelay(t) � nodelay(win, bf). ��������� getch() ������� �� �������� t. ��� ������������� t ���������� ����������� �� t ����������; ��� t, ������ ����, ���������� �� ����������; ��� ������������� t ��������� �����������, ���� ���� �� ������ ��������.

* int notimeout(win, bf)

���� bf ����� TRUE, getch() ����� ������������ ������������� ������ ��� ������������� �������� ������������������, ������������ � ESCAPE � �.�.

��� fd, ������ -1, ������� �������� ������ ������������� �� �����, ��� ������ ��������� ncurses ����� ������������ ��� ����� �������� �������� ���������� fd ������ stdin.

* int intrflush(win, bf)

��� ����������� �������� bf ������� ������� ���������� (���� quit, break) ������� ������� �������� tty. (���� �� �����������.)

8.8.2. �������� ���������

���������� �������� ��������� � bps (��� � �������).

���������� ������� ������ erase.

���������� ������� ������ kill.

* int has_ic()
int has_il()
has_ic()

���������� TRUE, ���� �������� ����� ���������/������� ������, has_il() ���������� TRUE, ���� �������� ����� ��������/������� �����. � ��������� ������ ������������ ERR. (���� �� �����������.)

��������� ������������� ������ � �������� �������� ���������.

(���� �� �����������.)

���������� ���������� TERM �� ���������������� �����. (���� �� �����������.)

8.8.3. ������������� �����

��������� �� ������������� ����� ���� � ������� ���������.

������ �����, ��� Linux-�� ��� ������� ���������� keypad. ��� �������� ������������ �������� ������ � ��������� ����������� ������� �� ���������� ��.

������ ������� 2 �������� ���� �����:

  1. ��������� ������� ������� �������, ����� ������� ��������������� ������� (��������, ���-������ ����� «press ‘q’ for quit» � ���� q);
  2. ���������, ��� ������������ ���������� ������ �������� � ����� �� ������ (��������, ������� ��� ����� � ���� ������).

��� ������� ������ �� ��������� ��������� ����� � ������, � ���� while ��������� ���������:

��� ��������� �������� �� ������� �������. ���� ������ q, �� �������� your_quit_function(), ����� — ���� ������� �����.

��������� switch ����� ���� ��������� �� ������ �������. ������� KEY_* ������ ��� ����� ����������� ������. ��������,

��� ������ ����������� �������.

��� ��������� ����� ���� ����� ��������� �������� ���:

��� ������� ������, ��� ���������� ���������� echo(), � �������, ���������� �������������, ����� ���������� �� ������. ����� ������ �������� ��������� move(. ) ��� wmove(. ).

��� �� ������ ������� ���� � ������ (���������� ������� �������) � ��������� ������������ ������ ������:

����� �������� ��. input.c � ���������� ��������.

8.9. ������� ���� � �����

werase(. ) � erase() ��������� ������� �� ������ ������� ���� win ��� stdscr. ��������, ���� �� ���������� �������� ����� � ���� � ������� werase(), ���� ������ ���� ��������. ������ ����� ���� ��������� �������� � COLOR_PAIRS, ���� ��������� ������ ��������, � ����� ������ �� ������, ��� �� ����� ��� ����������� ��������� ������� (��� �������������� ������ � ��������� WINDOW):

�������� ������� � ���, ��� ncurses ������ ������ ���������� ������������ �������� ����, ����� ��������� ����� ���������. ���� � lib_clrtoeol.c BLANK ��������� ���

�� ������ �������� ���� ��������, ���� ���� �������� ������.

�� ��, ��� erase(), �� ����� ����� ���������� clearok() (����� ����� ������ � ����������� �����������).

������� ������� ����� ������� (���������� � ������� ������ �� �������) � ������ ��� ��������.

������� ������� ������ ������� ������ �� ������� � �� ����� ������.

8.10. ���������� ���������

��� �������� � ������, ���� ncurses ���� ����������� � ������. ��� ��������, ��� ����� ��������� ���� �� ���������� �� ���������� ������ �� ��� ���, ���� �� ����� ����������� ����������. ��� ������������ ����� �� �����, ��������� �� ��������� ����������� ��������� ��������� ��������, � ����� ���� �������� ������� ����������, ����� ���������� ��� �� ������. � ��������� ������ �� ��������� ���������� �� ������ ���������, ��� �������� �� ���������� ����� ��������.

refresh() �������� stdscr �� ��������, � wrefresh(win) �������� ����������� ���� � stdscr � ����� ������ curscr �������� stdscr.

wnoutrefresh(win) �������� ���� win ������ � stdscr. ��� ��������, ��� ������ �� �������� �� ������������, �� ����������� ����� stdscr �� ����� ���� �������� ������ ���, ��� ���� ����� �����������. doupdate() ���������� ����� �� ��������. ��������� ����� ������ ��������� ����, ������� wnoutrefresh(win) ��� ������� ����, � ����� ���������� ���� ��� ������� doupdate(), ����� �������� ���������� �����.

��������, �� ����� ��������� ��������� � ����� ������. �� �������� ��� ����, ����� ��������� ����� ������. ������� cgangewin(win) � wrefresh(win).

����� ncurses ������� �������� ������, � ��� �������� ���������� ����� ���������. ��������� doupdate() �� ������� changewin(win) � ���� �������� �������, ��������� ���� ������� ����������.

����������� ��� �������, ����� ����� ������� ����-������ ������ ��������� ��������� ��������� ����� ��� ����� ����� (����� ���� ����� ��������� ��� ���-���� ����� �����).

������� ncurses-�, ��� ���� ����������� ����������� � ����� ����� ��� ������� �� start �� start+count. ��������, ����� � ��� ���� ��������� ����, ������������� ���� ����� (��� � ������� type.c), ��������� ������ �� ��� ����� �� �������� �� ����������� ������.

wtouchln(. ) �������� n �����, ������������ � y. ���� change ������������� TRUE, �� ����� �������������, � ��������� ������ — ��� (���������� ��� �� ����������).

untouchwin(win) ������� ���� win ��� ������������ �� ������� ���������� ������ refresh().

��� ������ ���� ������� �� ������ ���������, ���� �� ����� line ��� ���� win ��������� �� ������� ���������� ������ refresh().

������� 8.4: Ncurses — ��������

8.11. ������������� � ����

�������� — ��� ����������� ����������� ���������, ����������� �� ����� ������ �������� �� �����. ������� ����� ���� ���������� �����, ����� ���� �����������, ����� ������ � �.�. � ncurses �� ������ ����������� �������� ��� ��������� �������� ��� ���������� ���������� �������� ���� ������. ��������� �������� ����������� � ������������� �������.

Ncurses ���������� 8 ������, �������� �� ������ ������������ �� ��������� � �������� ����������. ������� ������������������ �������� ��������� ������ ����������� start_color(), ����� ��������� ����������� ��������� ��� ������ has_colors(). start_color() ����� ���������������� COLORS, ���������� ���������� ������, �������������� ����������, � COLOR_PAIR, ������������ ����� �������� ���, ������� �� ������ ����������.

�������� ����� ���� ��������� ‘|’ (OR), ������� �� ������ �������� ������ ��������� ����� ��� ������ A_BOLD|A_BLINK

���� �� ���������� ���� � ��������� attr, ��� �������, ������������ � ���� ����, ���������� ��� �������� � ����� ��� ��������� �� ��������� ���� ��������. ��� �� ����� ������� ��� ��������� ��� �������� ���� � �.�.

������ ��������� � �������, ���� �� ������ ��������� ��� ncurses � BSD curses, ��� ��� BSD curses �� ����� �������� ���������. (����� ��� �� �� ����� �������� ��������� ������ ������ SYS V). �������, ���� �� ������������ ��� ����� ���������, ��� �������� ������������ �������� #ifdef.

�������� ��� ��������� ��������� ������� attr, �� ����� �� ������ �������� � ���� (stdscr ��� win).

��������� �������� � attr � stdscr ��� win.

�������� ������� �������� ������ ������ ��� ���� (stdscr ��� win).

������ ������� �������� ��� ���� win.

���������� TRUE, ���� �������� ����� �����. ����� ���, ��� ������������ �����, ��������� �������� has_colors()-��, � ����� ���� ������������������ ����� start_color()-��.

TRUE, ���� �������� ����� �������������� �����.

�������� �������������. ��� ������� ������ ���� ������� ����� �������������� ������!

���� �� ����������� ����� � ��������� ����, �� ������� �� ������ ���������� �������� ���� ����� init_pair(. ). fg � bg — ��� ����� ��������� � ������� �����, ��������� � pair. pair ��������� �������� �� 1 �� COLORPAIRS -1. (0 — �� ������, �� �������������� ��� ������� � ������.) ������������ ������� pair ����� ������������ ��� �������. � �������, ��� ����� ������� ������� �� ����� ������:

������ ������� wattr(. ) ��� ��������� ����� ���� ������ ��� win:

��� �������� �������� ���� � ������� ����������, ��������:

������ ����� ��������� �������� ���� � ������� BOLD, ������ — ��������� ����� STANDOUT, � �� �������� ������� ������� �� ����� ������.

������ ����� ��������� � ������� ����� �� pair.

������� �������� ���������� r, g � b ��� color. r, g � b ��������� � ��������� �� 1 �� COLORS -1.

��������� ����������� r, g � b ��� color.

��� ������������� �������� � �����? ��������� ���������, ��� ������� � Linux-�, ����� �����, � ��������� — ��� (xterm, vs100 � �.�.). ��������� ��� ����� ��� ��������: vo > ������ �����, ������� CheckColor ����������������� ����� ��� ������ start_color(). ����� has_colors() ������ TRUE, ���� ������� �������� ����� �����. ����� ����� ���������� ini_tpair(. ) ��� ���������� ������ ��������� � ������� �����, � wattrset(. ) ��� ��������� ���� ������ � ������ ����. �������, ����� ���������� �������� ��� �����-������ ���������, �� ����� ������������ ������ wattrset(. ).

����� �������� ����� �� xterm, ������ ������, ��������� �������, — ��� ������������ ansi_xterm � ������������ ���������� terminfo �� M >�������� ������� stdscr ��� win. ��� ������� �����/������ ������������ �������������� �������, ������������� ������ ����� ������� ������ �������.

����������� ���������/����������� �������, ���� �������� ����� ����� �����������.

���������� ���������� �������. ���������: ��� ������.

���� win — �������, getparyx(. ) �������� ���������� ���� ������������ ������������� ����. � ��������� ������ y � x ����������� � -1. (���� �� �����������.)

�������� ��������� � ��������� ���������� ��� win � y � x.

�������� ����������� ������ ������ � y � x ��� ��������� ���� ������. ��� y � x, ������ -1, getsyx(. ) ��������� leaveok.

8.13. ���������

���� TRUE, ����� � ���� win ����� ��������� ����� �� ���� �����, ����� ������ ��������� � ������ ������ ���� � ��������� ������.���� FALSE, �� ������ �������� �� ������� �������.

��� ���������� scrollok(. ) ���������� ���� ����� ���� ���������� ��� ������ ������������� �������. (���������: ��� ����� ���������� � � ������, ���� �� ����������� ����� �����, �������� �� ��������� ����� ����, ������� ������ ��������� �� scrollok(. ).)

��� ������� ��������� ���� (� ������ � ��������� ������) �� ���� ����� �����.

��� ������� ��������� ���� stdscr ��� win ����� ��� ����, � ����������� �� ������ n. ���� n �������������, ���������� ��������� ���� �� n ����� �����, ���� n ������������� — �� n ����� ����.

������������� ����������� ������� ���������.

��������� ��� ��������, ��� ������������ ����� �� ������. ������ ����� type.c � ���������� ��������.

�� ����� ���������� ����� � ����, ������� 18 ����� � 66 �������. S[] — ��� ������ �������� � �������. Max_s �������� ������� ��������� ����� � S[]. Clear_line ���������� ������� � ������� ������� ������� �� ����� �����, ��������� ������� �������� ���� (�� A_NORMAL, ��� ��� ������ clrtoeol). Beg — ��� ��������� ����� �� s[], ������������ �� ������ ������ �� ������. Scroll — ��� �������� ����, ��� ������ ������� �������, �������� NEXT ��� PREVious (��������� ��� ����������) ����� ������.

8.14. �����������

  • WINDOW *newpad(nlines, ncols)
  • WINDOW *subpad(orig, nlines, ncols, begy, begx)
  • int prefresh(pad, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)
  • int pnoutrefresh(pad, pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol)
  • int pechochar(pad, ch)

8.15. ������ ����� (Soft-labels)

  • int slk_init(int fmt)
  • int slk_set(int labnum, char *label, int fmt)
  • int slk_refresh()
  • int slk_noutrefresh()
  • char *slk_label(int labnum)
  • int slk_clear()
  • int slk_restore()
  • int slk_touch()
  • int slk_attron(chtype attr)
  • int slk_attrset(chtype attr)
  • int slk_attroff(chtype attr)

��� ������� ������������� �������� attron(attr), attrset(attr) � attroff(attr). ���� �� �����������.

8.16. ������

  • int beep()
  • int flash()
  • char *unctrl(chtype c)
  • char *keyname(int c)
  • int filter() (���� �� �����������.)
  • vo >� ��������� ������ �� ������� ����� ��������� ������� (n)curses.

������ ������� �������� bsd-curses (� ������ 2.1.0 � � SunOS 4.x),

�� ������ ������� — sysv-curses (� SunOS 5.4 / Solaris 2), �������,

������������� ncurses � PHP

��� ����������� � ���-�����������, �� �������� ����� �� ������� ������ ��������� �� php ��� ����������������� ����� �� �������. ���������� ����� ����� ������� ������ ���������/�������� �� ������� ���������, �� � ������� ���������� ncurses ����� ������� ���������� ������� � �������� ������� ������� �����, ������� ����� ��������� ��������� � ������ ����� ����������.

PHP ����� ����� � ���������, � ��� ������� ����� ��������� �������, �������� ����� �������� ����������� �� ������ ������ (Perl/bash-������� � ������). ���������������� ncurses ������������ � ������������� ������� ����������� ������ � ������������ php-����������� �� ����� �������.

�������������� ������ � ���� ��� ������� � ����� ��������� ���������� ������ �� php, ������� ����� ������������ ����������� ���� ����������. � ��������� �������� ������ ����� ������, ����������� � ����� ����������, � ������� ���� ��� ���� ��� ������������� ncurses � ����� ����������.

��� ���� ������������� ������

��������� ����

�����������

�� ������

������������ �� ��������� ncurses � php ������ ����������. ��������� ������� �������������� � ������ ������ ����������� �� ����������� �����. ���������� � ncurses ������� ����� ���������������� �� C, ��� ���� �� ��� ���� ���������� �����������, � �� ���������.

���� � ��� ���� ���� ���������������� � C ��� C++, �������� �� ��� ������� � ncurses � ������ �����������, ����� �������� ������������ ����� ���� ncurses ��� ������������� � ���������������� ������, ����� ��� PHP.

��� ����� �����

��� ����� PHP, ���������������� � ������ -with-ncurses �� unix-�������� �������. �� ��� ��������� ������������ ������� �����, ������� � �� ���� �������� ������������� ������ � ������.

������, ��� ��� ����� ������������ ������������ ��� �������� ��������� reset. ���� ��������� �����-���� ������ � ncurses_end() �� ����� ������, �� ��� �������� ����� �������� �����������.

������� ���������� �������������� ������� ���� �����. PHP ����� �������� ������, ���� �� ����������� �������� ����, ������� �� ����� ���������������� �����������.

����� � �������� ���������� ������ ��� ���������� � ��������.

������� ������ � ������

������� �������� �������� ����, ������� ����� ������������ �� ��������� ������������. ����� ������� ������� ���� ���������� ������ � �������� ���� ������� ������. ����� ���������� ��� ���:

������ ����� � ������ ncurses_init(); , ����� ������� � ����� ncurses. ��� ����� ��� ������ ������� ���������� PHP ����� ������ � �������.

�������� ��� ������ ���� ���� � ������

���������� �������� ������� ���� � ��������� ������ ��� ���. �������� ���� ����� ����� �������� ����� �� ������������.

������ �� ����� �������� ������� �����-������ ������� ��� ������� �� �������, ��� �� ������ ������� ����������� ������ �� ���������� ��� ������� �� �����-���� ������. � ����������� ������������ ��� ����� esc (27 ascii-���).
����� �������� ����������� ������ �� ������� �� ESC, �������� ������ ��� ������ $pressed = ncurses_getch();

������ ���� �� ������ esc, ��������� ����������, � ���� ������ ascii-��� ������� ������� ����� �������� � ��������� ����.

����� �������� ���������, �������� ��� ����� ������� ncurses_refresh(); :

�� �� ���������� ������� REVERSE (���� � ��� �������� �������), ����� ���� DIM, UNDERLINE � ������.

����� �������� �������, ������� ������������� ����� �� ����.

������ ����

������ ��������� ����� ���� � ����������� ������ �� ����. � ������� �� ������� PHP �� ����� ���� �������� ������ ���������, � ������ ����������� ������ ����� �������. ����� ��������� ����� ������ �������� ����� �������� ����� ���������� ��������.

�������� ������ ���� � ������������ ������

�� ������������� ���� ����� ������������ �������� �� ��������� � �������� � ������� esc.

������ �� �������� ������� � ���������� �����������, ������� �� ������ �������, ���� ������ ��������� ���� �������������� �������. ����� �� ������ �� �������� �������� ����������, ������� ����� ��������� ������ ���������� ����������.

�� ������

�� ����� php.net ����������� 119 ������� ���������� ncurses. � �������������� ������� ���� ������ �������������� ������� � ������ �� ������������. ������, ��� ������ �� ������������� ������� ����������� � ����������� ������������. (����. �����������: � ��������� ������ ��� ������� ����������� � ������������ �� php.net, ������ ��� ���������� ��������).

Warning
������� �������� ������������
ncurses_init �������������� ncurses www.php.net/manual/en/function.ncurses-init.php
ncurses_newwin ������ ����� ���� www.php.net/manual/en/function.ncurses-newwin.php
ncurses_getmaxyx(resource window, int
return Y, int return X);
���������� � ���������� X � Y ������������ �������� ���������
ncurses_border ������ ����� ������ ��������� ���� www.php.net/manual/en/function.ncurses-border.php
ncurses_refresh ��������� �������� ����. ��� ����������� �������������� ���� ����������� ncurses_wrefresh www.php.net/manual/en/function.ncurses-refresh.php
ncurses_attron ��������� ������� � ���������� ������ www.php.net/manual/en/function.ncurses-attron.php
ncurses_attroff ��������� ���������� �������� www.php.net/manual/en/function.ncurses-attroff.php
ncurses_mvaddstr ������� ������ www.php.net/manual/en/function.ncurses-mvaddstr.php
ncurses_wborder (resource window, int
left, int right, int top, int bottom, int tl_corner, int tr_corner, int
bl_corner, int br_corner);
������ ����� ��� ��������������� ����.
ncurses_wattron(resource window, int
attribute)
��������� ncurses_attron, ������ ����������� ��� ���� window
ncurses_mvwaddstr �������� ������ �� �������������� ���� www.php.net/manual/en/function.ncurses-mvwaddstr.php
ncurses_wattroff (resource window, int
attribute)
��������� ncurses_wattroff, ������ ����������� ��� ���� window
ncurses_wrefresh �������������� �������������� ����. www.php.net/manual/en/function.ncurses-wrefresh.php
ncurses_getch ��� ����� � ���������� ��� ����. www.php.net/manual/en/function.ncurses-getch.php

���������� traceroute

������ �������� ������������� �������� ���������: traceroute � ������� whois-���������� � ������ ������.

���� ������ ��������� traceroute �� zend.com (���� 10 �������) � ���������� ���������� � ����� ����. �� ��������� ����� ���������� � ������� �������. ��� ������� �� enter ���������� � ������ ip ����� �������� � ������ ����. �� ������� �� esc ��������� ���������� ������ ���������.

� ����������

���� ���������� ��� �������� ����� � ����� ��������� ����� ��� ������ ���������� � �������������� ncurses.

�� �� ������������� ������������� ����, ������ � ������ ������ ������� ������.

�������� �� ��������� ����� ������� ��� ������������� ���� ���������� ������. � �������� ������ ��������� ��� ��� �������, ������� �������� �������� ����. �� ������ �������� � ��� �������� �������, ��������� ���������� ��� ���-������ ���.

��� ����� ��� ncurses_typeahead

(PHP 4 >= 4.1.0, PHP 5)

ncurses_typeahead — Specify different filedescriptor for typeahead checking

Description int ncurses_typeahead ( int fd )

Эта функция является ЭКСПЕ� ИМЕНТАЛЬНОЙ . Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Внимание

К настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов.

��� ����� ��� ncurses_typeahead

ncurses (new curses/����� �����) ��� ��������� ����������� �������� ������ � System V Rel 4.0 (� ����). ��� ���������� ������ terminfo, ������������ ����������, �����, ������������� ���������/highlights, ����������� �������� ����� � ������ �������.

Ncurses ������� ��� ��������� ��������:


Digital Unix (aka OSF1)

��� ���������� ���������� � header-����� ncurses. ��������� ��������� ������ � ftp://ftp.gnu.org/pub/gnu/ncurses/ ��� � ������� ������� GNU.

����� ��� ������� ��������, �� ������ �������������� CGI-������ PHP � ������ —with-ncurses .

��� ������ ncurses-������� ���������� NCURSES_ERR.

C, ncurses, ��������� ? ��� � ����-�� �� ������� ��� ���� �� ����

���������, � �� ����� ������� �������, �� ������ ��� ����� �������������� ���� �������� � ������� �� �������� ������ �� ������� �������

�����������: � ���� �������� ����� (������� ������� ��� ��������) ��������� �� C � ���� ��� �� ����� Windows. ����� ���������� ��� ���������� ���������� Win32, ������ ��� ���� ���� ��� Linux ������������. ���������� ������ ������ �����-������ � ��������� ����������.

� ��� ��� ������ � ������ � ������� ���������. � ������ (�������� � ����) ��� ������� �������� � �����. ��� ������ ��������� ���� — ���� ��� ������������� ��������, ��� ������ ��������� ������������� (���������� � UTF 2�� ���������) — �����-�� �����

���� �������� ����� ���� ������ (scr_dump) ��-������, ��������� ��� ������ -8� . �.�. ������������ ������� 4����� �� ����������. �� ��� � �������. ��. 3 ����� �� ��� ������� UTF + ���� ��������� ��������. �� ���! ��� ������ ��������� 4����� ��������� �� ����� ���� ���������. �.�. 8 ���� �� ������ �� ����� ����� ������ � 8� �� ������, ���� ���������� ����� ������������� �������� � ��� ���� �� ������� �� ������ ������ ������ ��������� ��������� 40 ������������� ������, � �� 80 ��� �������� ��!

����������, � ���� ���-�� ����� ������� ���������� ncurses, ���� ��� �� ������������� UTF ��������� � ����� �������� ������ — ����� UTF � �� � ����? ������-�� ���� �� ������ �������� ��������� 866 ������� �������.

Илон Маск рекомендует:  Что такое код eof
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL
Внимание