Что такое код ncurses_insertln

Содержание

FPublisher

Web-����������: ���� ������

������������ PHP

ncurses_insertln

(PHP 4 >= 4.0.7, PHP 5, PECL ncurses:1.0.0)

ncurses_insertln � Insert a line, move rest of screen down

��������

int ncurses_insertln ( void )

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

Inserts a new line above the current line. The bottom line will be lost.

��� ����� ��� ncurses_insertln

1549 ���������

1 �����

66 ��������� ������

��� ��������� ������� ����������� ������� + � ncurses? ������� � ����� ���, ��������� �������� ��������� �������:

��� �������� ���������, �� �������� � ���, ��� � �� ���� ������� Cj � ENTER ������������, � ��� ������, ���:

���� . ��� ��� ��� �������? �������!

— ��������: ���� � �������� ����������� ���� ���, � �� ����� ��������� ������� ������� �����, ���� �� �������� ����������. Enter �������� ��� ctrl-j.

������ (1)

2 �����

34851 ��������� ������

��������� nlnonl ��������� ���, ����������� �� ������� ���������� ����������� ������� �������� � ����� ������ ��� ����� � ����������� �� ��� ����� ������ � ������� � ������� ������ �� ������ (� ����� ������ call addch(‘\n’) ��������� �� ���������� �������� � �������� ������ �� ����������� ������) , ������������� ��� �������� ����������. ���� �� ��������� ��, ��������� nonl, curses ������ ����� ������������ ����������� �������� ������, ��� �������� � ����� �������� �������� �������. ����� ����, ��������� ������ ���������� ���� ��������.

���������� ������: ������ ������������ �� getch �������� �����������:

��� �������, KEY_ENTER ���������� ������ (�), ������������ �������� Enter �� �������� ����������:

  • � �������� ��������� ����������� �������� �������� �����,
  • ������� Enter �� ������� ���������� ��� �������������� ������������ ��������� ASCII ��� �������� ������� � �������� ������,

� ����������� �� ����, ��� �� ������ nl ��� nonl, ������� �Enter� �� ������� ���������� ����� ������� ���� ������� �������, ���� ������� ������, �, �������,

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

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

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

� ������� ��������� ����� OP �� ����������� cbreak (��� raw ). �������� ����������� ��� cbreak �������

������ ������� tty ���������� ��������� ������� �� ��� ���, ���� �� ����� ��������� ������� ������ ��� ������� �������. cbreak ��������� ��������� ����������� ������ � ������� / ����� ��������-��������� (���������� � ����������� ����������� ������� �� ����������), ��� ������ ������� , �������� ������������� ����� �� ��������� ���������. ��������� nocbreak ���������� �������� � ���������� (��������������) �����.

������������� �������� ����� ���������� ��� �� ���������� � ������ cbreak, ��������� ���� ����� �����������; �������������, ��������� ������ �������� cbreak ��� nocbreak ����. ����������� ������������� �������� � �������������� ��������� ������������� ����� cbreak . �������� ��������, ��� cbreak �������������� raw . (��. Curs_getch (3x) ��� ���������� ����, ��� ��� ������������ ��������������� � echonoecho .)

����� curs_getch �� ������ ���������

���� keypad TRUE � �������������� ������� ������, ������ �������������� �������� ������������ ����� ��� ���� �������������� �������:

  • ���������������� �������������� ������� ����������� ��� ������� �� ���������� ��� ��������� 8-������ ��������. �� ����� ���������� � KEY_ .

�� ����, curses ��������, ������ KEY_ENTER ���� ��������� �������� keypad :

��� ���������� ���� �������� ������ ����������� ��������� ������� � ����� ���������� �� 17 ���:

�� ���� �� ������ �������� keypad ������ getch , � ������������ �������� KEY_ENTER �� �������� �������� (��� ������ �������� � ������� %c ).

�������� ������� Linux � ������� ��������� ���������, �� ������� ������ ������� ������� ��� �������� ���������� Enter , ������ ��� ��� �������� �� ���������� ����� ���������� . ������� Linux ������������ ����� ����������, � ��������������� �������� ����� ���� ��������. � �������� ������� �������� (���� �������� . ) �� ������ ����������, TERM=vt100 ����� ������� KEY_ENTER .

���������� ���������� �� 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_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln — Insert a line, move rest of screen down

Description bool ncurses_insertln ( void )

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.

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

Ncurses �� �������� � ����������

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

���� �������� ���������� ���� ��� Linux � �������������� ncurses.

Warning
05.09.2014, 19:28

�������� � ncurses
������ ����� �������, � ������� «������ ���» ������� ����� ���������� ncurses: #include.

���������� ncurses.h
������������, ��� ����� ��������� ������ ��������� ��� linux? ���� ��� ���� ���������� ncurses.h ��.

�� �������� ����� ����������
�� ���� ��� ������� ��� �� ���������� �������� �������! ��� ����� ��������

��������� �� �������� � ����������
������. � ���� ��������� — ��������������. � ���� ����� ������: ������ ����� � ����� ��������� � .

Copy() �� �������� � ����������
������������! ����� ��������: ������� copy() � Lazarus � ������ �������� ������-�� ��������.

���������������� � 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 � 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, ������ ��� ���������� ��������).

������� �������� ������������
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

� ���� ���� ���������� curses (WordGrinder). � ���� ������ ��� ��� ����� �� ������ �� ������������, ������� ������, ��� ��������� ������� �� �������� ������� ������� �� ��� ����������. �� ���� �� ����.

��������� ��������� �������� ������� SHIFT + ������� � ��������� ������� ��������� �� ����������, ����� ��� END. ��������, ��� ����������, �������, ��� ��������� �� ���������� ��� ������� ��� ���� ������. � ������ ������ SHIFT + ������� � ������ �� �������, � ��� END � ������� �������� escape-������������������.

��� ���� ��������. ��� ��������� ����� ���������������� � ����������� ��������� � keysyms. � ������ �������� KEY_SLEFT � KEY_END . ������ � ��?

� ���������� ��������� ������ ����������, � ������� �������� ��� �����, �� �� ���� ������ ����������, ��� � ����� �����������; � ����������, �������� nano, ������������� ���������� ����� ������, ������ ��� ������������ ���� ����������� �������������� ������, ��� ��� � �� ����, �������� �� ��� ������� ���������� �� �������� ���.

� ������������� ncurses ��������� �������:

� ��������� gnome-terminal � �������� ��������� ���������, � xterm — ��� ��� ���������. ���� — ��� UTF-8, � � ���� ���� ncursesw ������� ����������.

������, ����� ������� ������ � ������� ������������ Wordgrinder � gnome-���������� Gnome 3 � �����������, ��� ��� ��� �������� ����� ���������� �������������� ���� ������ ncurses. ��������, SHIFT + LEFT ������ ���������� ��� ����� 393. xterm ���������� ����� ����� �� ���������. � ���������, CTRL + LEFT ������� ��� 539, � � ������������ Curses ����� �������, ��� ����������� ���� ������ ��������� � ��������� �� KEY_MIN �� KEY_MAX — �� 257 �� 511.

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

��� ����� ��� ncurses_insertln

1549 ���������

1 �����

66 ��������� ������

��� ��������� ������� ����������� ������� + � ncurses? ������� � ����� ���, ��������� �������� ��������� �������:

��� �������� ���������, �� �������� � ���, ��� � �� ���� ������� Cj � ENTER ������������, � ��� ������, ���:

���� . ��� ��� ��� �������? �������!

— ��������: ���� � �������� ����������� ���� ���, � �� ����� ��������� ������� ������� �����, ���� �� �������� ����������. Enter �������� ��� ctrl-j.

������ (1)

2 �����

34851 ��������� ������

��������� nlnonl ��������� ���, ����������� �� ������� ���������� ����������� ������� �������� � ����� ������ ��� ����� � ����������� �� ��� ����� ������ � ������� � ������� ������ �� ������ (� ����� ������ call addch(‘\n’) ��������� �� ���������� �������� � �������� ������ �� ����������� ������) , ������������� ��� �������� ����������. ���� �� ��������� ��, ��������� nonl, curses ������ ����� ������������ ����������� �������� ������, ��� �������� � ����� �������� �������� �������. ����� ����, ��������� ������ ���������� ���� ��������.

���������� ������: ������ ������������ �� getch �������� �����������:

��� �������, KEY_ENTER ���������� ������ (�), ������������ �������� Enter �� �������� ����������:

  • � �������� ��������� ����������� �������� �������� �����,
  • ������� Enter �� ������� ���������� ��� �������������� ������������ ��������� ASCII ��� �������� ������� � �������� ������,

� ����������� �� ����, ��� �� ������ nl ��� nonl, ������� �Enter� �� ������� ���������� ����� ������� ���� ������� �������, ���� ������� ������, �, �������,

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

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

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

� ������� ��������� ����� OP �� ����������� cbreak (��� raw ). �������� ����������� ��� cbreak �������

������ ������� tty ���������� ��������� ������� �� ��� ���, ���� �� ����� ��������� ������� ������ ��� ������� �������. cbreak ��������� ��������� ����������� ������ � ������� / ����� ��������-��������� (���������� � ����������� ����������� ������� �� ����������), ��� ������ ������� , �������� ������������� ����� �� ��������� ���������. ��������� nocbreak ���������� �������� � ���������� (��������������) �����.

������������� �������� ����� ���������� ��� �� ���������� � ������ cbreak, ��������� ���� ����� �����������; �������������, ��������� ������ �������� cbreak ��� nocbreak ����. ����������� ������������� �������� � �������������� ��������� ������������� ����� cbreak . �������� ��������, ��� cbreak �������������� raw . (��. Curs_getch (3x) ��� ���������� ����, ��� ��� ������������ ��������������� � echonoecho .)

����� curs_getch �� ������ ���������

���� keypad TRUE � �������������� ������� ������, ������ �������������� �������� ������������ ����� ��� ���� �������������� �������:

  • ���������������� �������������� ������� ����������� ��� ������� �� ���������� ��� ��������� 8-������ ��������. �� ����� ���������� � KEY_ .

�� ����, curses ��������, ������ KEY_ENTER ���� ��������� �������� keypad :

��� ���������� ���� �������� ������ ����������� ��������� ������� � ����� ���������� �� 17 ���:

�� ���� �� ������ �������� keypad ������ getch , � ������������ �������� KEY_ENTER �� �������� �������� (��� ������ �������� � ������� %c ).

�������� ������� Linux � ������� ��������� ���������, �� ������� ������ ������� ������� ��� �������� ���������� Enter , ������ ��� ��� �������� �� ���������� ����� ���������� . ������� Linux ������������ ����� ����������, � ��������������� �������� ����� ���� ��������. � �������� ������� �������� (���� �������� . ) �� ������ ����������, TERM=vt100 ����� ������� KEY_ENTER .

��� ����� ��� ncurses_insertln

(PHP 4 >= 4.1.0, PHP 5)

ncurses_insertln — Insert a line, move rest of screen down

Description bool ncurses_insertln ( void )

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

ncurses_insertln() inserts a new line above the current line. The bottom line will be lost.

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