В чем преимущества GRUB перед LILO? [duplicate]

tput оставлен расплывчатым и минимальным в POSIX, потому что в X / Open Curses есть более подробная спецификация:

Похоже, что нет прямой ссылки на HTML-версию последней (в частности, на командную строку tput ), но подробнее (примерно вдвое длиннее). Цитата из описания в X / Open Curses:

7319 When XCURSES is supported, this description for the tput utility replaces that in the XC
7320 specification.
7321 The tput utility uses the terminfo database to make the values of terminal-dependen
7322 capabilities and information available to the shell (see sh in the XCU specification); to clear
7323 initialize, or reset the terminal; or to return the long name of the requested terminal type. Th
7324 tput utility outputs a string if the capability attribute (capname) is of type string, or an integer i
7325 the attribute is of type integer. If the attribute is of type boolean, tput simply sets the exit statu
7326 (0 for TRUE if the terminal has the capability, 1 for FALSE if it does not), and produces n
7327 output.

программа получит любое значение из базы данных терминала. Большинство платформ, которые вы используете, предоставляют реализацию X / Open Curses. Конечно, мелкие детали могут отличаться. На некоторых платформах вы можете встретить версию tput , которая использует имена termcap , а не terminfo . Но вы вряд ли столкнетесь с этим при назначении, использующем «POSIX» , и в любом случае вы можете достичь той же цели, используя немного другой словарь.

Однако ни curses , ни управляющие последовательности ANSI не являются частью POSIX. Escape-последовательности стандартизированы в ECMA-48:

Как правило, POSIX не сильно пересекается с другими стандартами (вы найдете большинство исключений из этого правила по сравнению со стандартом C. ). Точно так же X / Open Curses не сильно пересекается с ECMA-48: форма и содержание управляющих последовательностей не подробно описаны в этом документе.

Строго говоря, вы не можете выполнять свое назначение, используя только POSIX. Вы можете сделать это только с помощью POSIX плюс обычный набор связанных стандартов, реализация которых есть в вашей системе.

Причина, по которой приложения, такие как tput (и библиотеки, такие как curses ), заключаются в том, чтобы обеспечить уровень, позволяющий скрыть детали и несоответствия между реализациями. POSIX идет только так далеко и опускает большинство интересных функций операционной системы, например, управление пользователями, безопасность и, конечно же, управление терминалами. Даже с escape-последовательностями есть несколько способов переместить курсор на различные терминалы. Вот несколько terminfo их резюме:

   carriage_return           cr     cr   carriage return (P*)
                                         (P*)

   column_address            hpa    ch   horizontal position
                                         #1, absolute (P)

   cursor_address            cup    cm   move to row #1 col-
                                         umns #2

   cursor_down               cud1   do   down one line

   cursor_home               home   ho   home cursor (if no
                                         cup)

   cursor_left               cub1   le   move left one space

   cursor_mem_address        mrcup  CM   memory relative cur-
                                         sor addressing, move
                                         to row #1 columns #2

   cursor_right              cuf1   nd   non-destructive

   cursor_to_ll              ll     ll   last line, first
                                         column (if no cup)

   cursor_up                 cuu1   up   up one line
                                         space (move right
                                         one space)

   parm_left_cursor          cub    LE   move #1 characters
                                         to the left (P)

   parm_right_cursor         cuf    RI   move #1 characters
                                         to the right (P*)

   restore_cursor            rc     rc   restore cursor to
                                         position of last

   row_address               vpa    cv   vertical position #1
                                         absolute (P)

   save_cursor               sc     sc   save current cursor
                                         position (P)

   tab                       ht     ta   tab to next 8-space
                                         hardware tab stop

                                         save_cursor

1
25.10.2014, 04:28
0 ответов

Теги

Похожие вопросы