stdio.h

stdio.h
Стандартная библиотека
языка программирования С

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 <stdio.h>
 
int main(void)
{
    int ch;
    while ((ch = getchar()) != EOF)
        putchar(ch);
    putchar('\n');
    return 0;
}

Программа, приведённая выше, считывает всю входящую информацию из стандартного ввода и выводит её побайтно на стандартный вывод, добавляя символ перевода строки в конец вывода.

Функции

Функции, объявленные в stdio.h в общем случае могут быть разделены на две категории: функции для операций с файлами и функции для операций ввода-вывода.

Имя Примечания
Функции для файловых операций
fclose закрывает файл, ассоциированный с переданным ей значением FILE *
fopen, freopen, fdopen открывают файл для определённых типов чтения и записи
remove удаляет файл (стирая его)
rename переименовывает файл
rewind работает аналогично fseek(stream, 0L, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
tmpfile создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
clearerr очищает EOF и индикаторы ошибок для данного потока
feof проверяет, установлен ли индикатор EOF для данного потока
ferror проверяет, установлен ли индикатор ошибок для данного потока
fflush принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
fgetpos сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
fgetc возвращает один символ из файла
fgets получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
fputc записывает один символ в файл
fputs записывает строку в файл
ftell возвращает указатель позиции файла, который может быть передан fseek
fseek производит смещение от текущей позиции в файле на указанное количество байт, или от его начала или конца, в указанном направлении.
fsetpos устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)
fread читает данные из файла
fwrite записывает данные в файл
getc считывает и возвращает символ из данного потока и изменяет указатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза
getchar имеет аналогичный эффект, что и getc(stdin)
gets считывает символы из stdin до символа перевода строки и хранит их в своём единственном аргументе
printf, vprintf используются для вывода в стандартный поток вывода
fprintf, vfprintf используются для вывода в файл
sprintf, snprintf, vsprintf используются для вывода в массив типа char (Строка в языке Си)
perror записывает сообщение об ошибке в stderr
putc записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза
putchar, fputchar аналогичны putc(stdout)
scanf, vscanf используются для ввода из стандартного потока ввода
fscanf, vfscanf используются для ввода из файла
sscanf, vsscanf используются для ввода из массива char (то есть Строка в языке Си)
setbuf
setvbuf устанавливает режим буферизации для данного потока
tmpnam создает имя временного файла
ungetc помещает символ обратно в поток
puts выводит символьную строку в stdout

Константы

Следующие константы определены в заголовочном файле stdio.h:

Имя Примечания
EOF отрицательное целое число типа int, используемое для обозначения конца файла
BUFSIZ целое число, равное размеру буфера, используемое функцией setbuf()
FILENAME_MAX размер массива char, достаточного для хранения имени любого файла, который может быть открыт
FOPEN_MAX число файлов, которые могут быть открыты одновременно; как минимум равно 8
_IOFBF сокращение от «input/output fully buffered» (полностью буферируемый ввод/вывод); целое число, которое может быть передано функции setvbuf() для запроса блока буфера ввода и вывода для открытого потока
_IOLBF сокращение от «input/output line buffered» (линейно буферируемый ввод/вывод); целое число, которое может быть передано функции setvbuf() для запроса линии буфера ввода и вывода для открытого потока
_IONBF сокращение от «input/output not buffered» (не буферируемый ввод/вывод); целое число, которое может быть передано функции setvbuf() для запроса небуферированого ввода и вывода для открытого потока
L_tmpnam размер массива char, достаточного для хранения временного имени файла, сгенерированного функцией tmpnam()
NULL макрос, расширяющий константу нулевого указателя; то есть, константу, представляющую значение указателя, гарантированно указывающего несуществующий адрес объекта в памяти
SEEK_CUR целое число, которое может быть передано функции fseek() для запроса позиционирования относительно текущей позиции в файле
SEEK_END целое число, которое может быть передано функции fseek() для запроса позиционирования относительно конца файла
SEEK_SET целое число, которое может быть передано функции fseek() для запроса позиционирования относительно начала файла
TMP_MAX максимальное число уникальных имен файлов, генерируемых функцией tmpnam(); как минимум 25

Переменные

Следующие переменные опеределены в заголовочном файле stdio.h:

Имя Примечания
stdin указатель на FILE, указывающий на стандартный поток ввода (обычно клавиатура).
stdout указатель на FILE, указывающий на стандартный поток вывода (обычно дисплей терминала).
stderr указатель на FILE, указывающий на стандартный поток ошибок (обычно дисплей терминала).

Типы

Типы данных, определённые в заголовочном файле stdio.h содержат:

  • FILE — структура, содержащая информацию о файле или текстовом потоке, необходимую для выполнения её операций ввода и вывода операций, включая:
    • файловый дескриптор
    • текущую позицию в потоке
    • индикатор конца файла
    • индикатор ошибок
    • указатель на буфер потока, если возможно
  • fpos_t — не массивообразный тип, способный уникально идентифицировать позицию каждого байта в файле.
  • size_t — беззнаковый целый тип, являющийся типом результата выполнения оператора sizeof.

Примечания

  1. Kernighan Brian The UNIX Programming Environment. — Englewood Cliffs: Prentice Hall. — P. pg. 200.
  2. ISO/IEC 9899:1999

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "stdio.h" в других словарях:

  • Stdio.h — Стандартная библиотека языка программирования С assert.h complex.h ctype.h errno.h fenv.h float.h inttypes.h iso646.h limits.h locale.h math.h setjmp.h signal.h stdarg.h stdbool.h stddef.h stdint.h stdio.h stdlib.h …   Википедия

  • Stdio.h — Saltar a navegación, búsqueda stdio.h, que significa standard input output header (cabecera estandar E/S), es la biblioteca estándar del lenguaje de programación C, el archivo de cabecera que contiene las definiciones de macros, las constantes,… …   Wikipedia Español

  • stdio.h — stdio.h, que significa standard input output header (cabecera estandar E/S), es la biblioteca estándar del lenguaje de programación C, el archivo de cabecera que contiene las definiciones de macros, las constantes, las declaraciones de funciones… …   Wikipedia Español

  • Stdio.h — stdio.h, which stands for standard input/output header , is the header in the C standard library that contains macro definitions, constants, and declarations of functions and types used for various standard input and output operations. The… …   Wikipedia

  • Stdio.h — <stdio.h>, pour Standard Input/Output Header ou En tête Standard d Entrée/Sortie , est l en tête de la bibliothèque standard du C déclarant les macros, les constantes et les définitions de fonctions utilisées dans les opérations d… …   Wikipédia en Français

  • STDIO — Standard Input/Output …   Acronyms

  • STDIO — Standard Input/Output …   Acronyms von A bis Z

  • STDIO.H — comp. abbr. Standard Input/Output Header (C Programming Language) …   United dictionary of abbreviations and acronyms

  • Dao (programming language) — Infobox programming language name = Dao paradigm = Multi paradigm year = 2006 designer = Limin Fu latest release version = dao 1.0 preview latest release date = 2008 04 25 typing = statically typed or dynamically typed influenced by = C++, Lua,… …   Wikipedia

  • Comparison of programming languages (basic instructions) — Programming language comparisons General comparison Basic syntax Basic instructions Arrays Associative arrays String operations …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»