Обращение к стандартной библиотеке

Каждый исходный файл, который обращается к функции изстандартной библиотеки, должен где то в начале содержатьстроку #include < stdio.h > В файле stdio.h определяются некоторые макросы и переменные,используемые библиотекой ввода/вывода.

Стандартный ввод и вывод

Самый простой механизм ввода заключается в чтении поодному символу за раз из "стандартного ввода" (обычно с тер-минала пользователя) с помощью функции getchar. Функция getchar () целого типа при каждом к ней обращении возвращаетследующий вводимый символ. В большинстве систем, которыеподдерживают язык Си, терминал может быть заменен некоторымфайлом с помощью обозначения " < ". Если некоторая программа prog использует функцию getchar, то командная строка prog <infile приведет к тому, что prog будет читать из файла infile, а нес терминала. Переключение ввода делается таким образом, чтосама программа prog не замечает изменения; в частностистрока " <infile " не включается в командную строку аргументов(см. следующую главу). Переключение ввода оказывается неза-метным и в том случае, когда вывод поступает из другой прог-раммы через межпроцессный канал. Например, командная строка otherprog | prog прогоняет две программы, otherprog и prog, так, что -52- стандартным вводом для prog служит стандартный вывод other-prog. Функция getchar возвращает значение EOF, когда достига-ется конец файла, какой бы ввод она при этом не считывала.Стандартная библиотека полагает символическую константу EOF равной -1 (посредством #define в файле stdio.h), но проверкиследует писать в терминах EOF, а не -1, чтобы избежать зави-симости от конкретного значения. Вывод можно осуществлять с помощью функции putchar (c),помещающей символ ' c ' в "стандартный вывод", который поумолчанию является терминалом. Вывод можно при вызове прог-раммы направить в некоторый файл с помощью обозначения ">".Если prog использует putchar, то командная строка prog > outfile приведет к записи стандартного вывода в файл outfile, а нена терминал. В системе ДЕМОС можно также использовать межп-роцессный канал. В стандартной библиотеке ввода/вывода "функции" getchar и putchar на самом деле могут быть макросами. Это позволяетизбежать накладных расходов на обращение к функции для обра-ботки каждого символа.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: