Операционная система UNIX. Руководство программиста

     

Ввод/вывод


Ввод/вывод уже упоминался в данной главе в связи с системными вызовами и библиотечными функциями. Стандартный пакет ввода/вывода языка C состоит из целого множества библиотечных функций. Кроме того, имеется несколько системных вызовов, предназначенных для организации ввода/вывода. Далее вопросы ввода/вывода в языке C будут обсуждаться несколько более подробно. К таким вопросам можно отнести:

  • Создание и удаление файлов.
  • Открытие и закрытие файлов, используемых программой.
  • Передачу информации из файла в программу (чтение).
  • Передачу информации из программы в файл (запись).

В данном разделе будут описаны несколько функций, предназначенных для передачи информации, но в основном будут обсуждаться функции для различных манипуляций с файлами.


Для ввода и вывода данных в окна и спецокна используются подпрограммы, похожие на те, которые работают с stdscr. Единственная разница состоит в том, что необходимо указать окно, к которому относится операция. Как правило, имена этих подпрограмм получаются путем добавления буквы w в начало названия соответствующей подпрограммы для stdscr, а также имени окна в качестве первого параметра. Например, если нужно вывести символ c в окно mywin, addch ('c') превращается в waddch (mywin,'c'). Далее приводится список работающих с окнами подпрограмм, соответствующих тем, которые были описаны в разделе Несложный ввод/вывод.

waddch (win, ch)

mvwaddch (win, y, x, ch)

waddstr (win, str)

mvwaddstr (win, y, x, str)

wprintw (win, fmt[,arg...])

mvwprintw (win, y, x, fmt[,arg...])

wmove (win, y, x)

wclear (win)

werase (win)

wclrtoeol (win)

wclrtobot (win)

wrefresh (win)

Как видно из описаний, эти подпрограммы отличаются от тех, которые работают с stdscr, только своими именами и добавлением аргумента win. Заметьте, что у подпрограмм, чьи имена начинаются на mvw, аргумент win предшествует координатам y, x, хотя, судя по их именам, следовало бы ожидать обратного. См. в curses(3X) дополнительные данные об этих подпрограммах, вариантах подпрограмм getch(), getstr() и другую информацию, касающуюся работы с окнами.

Все подпрограммы с буквой w в имени могут использоваться и со спецокнами, за исключением wrefresh() и wnoutrefresh() (см. ниже). Вместо них со спецокнами нужно использовать соответственно prefresh() и pnoutrefresh().



Содержание раздела