stdio.h (от англ. standard input/output header — стандартный заголовочный файл ввода-вывода) — заголовочный файлстандартной библиотекиязыка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода. Функциональность унаследована от «портативного пакета ввода-вывода» («portable I/O package»), написанного Майком Леском из Bell Labs в начале 1970-х.[1]C++ ради совместимости также использует stdio.h наряду со схожим по функциональности заголовочным файлом cstdio.
Функции, объявленные в stdio.h, являются весьма популярными благодаря тому, что, являясь частью Стандартной библиотеки языка Си, они гарантируют работу на любой платформе, поддерживающей Си. Приложения на отдельных платформах могут, тем не менее, иметь причины для использования функций ввода-вывода самой платформы вместо функций stdio.h.
Стандарт определяет такое понятие, как поток — последовательный набор информации, который может быть входным или выходным, может быть предоставлен как файлом, так и устройством (например, терминалом)[2]. Поток может быть текстовым или бинарным. Текстовый поток — последовательность символов. При этом термин «символ» в данном контексте может означать как читаемый символ, так и управляющий символ (например, символ вертикальной табуляции или символ конца файла). Символы в текстовом потоке объединяются в строки. Каждая строка заканчивается символом новой строки либо символом конца файла. Бинарный поток — последовательность байтов, которые могут прозрачно представлять любую информацию (в том числе и текст). Поток может быть в одном из трёх состояний: неориентированном (по умолчанию), «широко символьном» или битовым. Состояние определяется последней функцией, которая использовала этот поток.
Пример использования
Все функции в языке Си (и его многочисленных разновидностях) объявляются в заголовочных файлах. Таким образом, программистам приходится подключать файл stdio.h к исходному коду, чтобы использовать функции, объявленные в нём.
#include int main(void){ int ch; while ((ch = getchar()) != EOF) putchar(ch); putchar('\n'); return 0;}Программа, приведённая выше, считывает всю входящую информацию из стандартного ввода и выводит её побайтно на стандартный вывод, добавляя символ перевода строки в конец вывода.
Функции
Функции, объявленные в stdio.h, в общем случае могут быть разделены на две категории: функции для операций с файлами и функции для операций ввода-вывода.
Константы
В заголовочном файле stdio.h определены следующие константы:
Переменные
Следующие переменные определены в заголовочном файле stdio.h:
Типы
Типы данных, определённые в заголовочном файле stdio.h, содержат:
FILE— структура, содержащая информацию о файле или текстовом потоке, необходимую для выполнения её операций ввода и вывода операций, включая:- файловый дескриптор
- текущую позицию в потоке
- индикатор конца файла
- индикатор ошибок
- указатель на буфер потока, если возможно
fpos_t— не массивообразный тип, способный уникально идентифицировать позицию каждого байта в файле.size_t— беззаконный целый тип, являющийся типом результата выполнения оператораsizeof.
Примечания
- ↑Kernighan, Brian; Роб Пайк. The UNIX Programming Environment[англ.]. — Энглвуд-Клифс[англ.]: Prentice Hall, 1984. — С. pg. 200.
- ↑ISO/IEC 9899:1999. Дата обращения: 7 августа 2011. Архивировано 22 августа 2011 года.
Ссылки
stdio.h— основные определения, The Single UNIX® Specification, выпуск 7 от The Open Group (англ.)- stdio.h on Coding Programmer Page / C Library Reference and Examples (en)
- stdio.h