Документация по LinuxLinuxDoc.Ru 🔍

stdio - стандартные библиотечные функции ввода/вывода (I/O)

НАЗВАНИЕ
stdio - стандартные библиотечные функции ввода/вывода
(I/O)

СИНТАКСИС
#include

FILE *stdin;
FILE *stdout;
FILE *stderr;

ОПИСАНИЕ
Стандартные библиотеки I/O обеспечивают буферизируемый
поток простым и эффективным интерфейсом. Ввод и вывод
представляет собой поток логических данных, а физические
характеристики I/O скрываются. Список функций и макросов
приведен ниже, а более подробная информация находится на
соответствующих страницах.

Поток соотносится с внешним файлом (который также может
быть физическим устройством) при открытии файла. Такое
открытие может вызвать создание нового файла. Создание
существующего файла вызовет потерю его содержимого. Если
файл не может поддерживать запросы позиционирования, то
индикатор позиции в файле (нулевой байт), соответствующий
потоку, устанавливается в начале файла (если только файл
открыт не в режиме добавления). Если используется режим
добавления, то индикатор позиции в файле будет указывать
на конец файла. Индикатор позиции обрабатывается
последующими считывающими, записывающими и позиционными
запросами. Все операции ввода осуществляются так, как если
бы все символы были безошибочно считаны вызовом функции
fgetc(3); а вывод осуществляется, как если бы все символы
были успешно считаны вызовом функции fputc(3).

Ассоциация потока с файлом прекращается при закрытии
файла. Потоки вывода "очищаются" (любое содержимое
незаписанного буфера передается в системное окружение)
перед тем, как ассоциирование прекратится. Значение
указателя на FILE после закрытия файла определить будет
невозможно.

Впоследствии файл может быть открыт еще раз той же самой
или другой программой, а его содержание может быть
изменено. Если функция завершает работу и возвращает
значения своему родителю или если вызывается функция
exit(3), то перед закрытием программы закрываются все
открытые файлы (и, следовательно, "очищаются" все потоки
вывода). Другие методы закрытия программ, как, например,
abort(3), не всегда приводят к корректному закрытию
файлов.

При запуске программы предопределяются три текстовых
потока, которые не следует открывать "явно": -- standard
input (для чтения стандартного ввода), -- standard output
(для записи стандартного вывода) и standard error (для
записи вывода диагностики). Названия потоков сокращены до
stdin,stdout и stderr. Когда стандартный поток вывода
ошибок открыт, то он не полностью буферизирован;
стандартные потоки ввода и вывода полностью буферизируются
только при условии, что они не ссылаются на какое-либо
интерактивное устройство.

Потоки вывода, ссылающиеся на устройства терминала, всегда
буферизируются построчно (по умолчанию), и всякий раз при
обращении потока ввода к терминалу они автоматически
записываются. В случаях, когда после вывода на терминале
части строки объем производимых вычислений велик,
необходимо выполнять fflush(3) стандартного вывода перед
продолжением вычислений - только в этом случае будет
выводиться остальная часть строки.

Библиотека stdio является частью библиотеки libc, а
функции автоматически загружаются по мере надобности
компиляторов cc(1) и pc(1). Раздел СИНТАКСИС страниц
руководства описывает: какие файлы заголовков необходимо
использовать, как выглядят объявления функций и какие
внешние переменные представляют интерес для работы.

Нижеследующий список состоит из макросов; эти названиия не
могут быть использованы вновь без удаления, в первую
очередь, их определения с помощью #undef: BUFSIZ, EOF,
FILENAME_MAX, FOPEN_MAX, L_cuserid, L_ctermid, L_tmpnam,
NULL, SEEK_END, SEEK_SET, SEE_CUR, TMP_MAX, clearerr,
feof, ferror, fileno, fropen, fwopen, getc, getchar, putc,
putchar, stderr, stdin, stdout. Функции feof, ferror,
clearerr, fileno, getc, getchar, putc и putchar будут
использованы только в случае, если соответствующие
определения макросов "явно" удалены.

СПИСОК ФУНКЦИЙ

Функция
Описание

clearerr проверяет и обнуляет статус потока;

fclose закрывает поток;

fdopen открывает поток;

feof проверяет и обнуляет статус потока;

ferror проверяет и обнуляет статус потока;

fflush "сбрасывает" поток;

fgetc считывает следующий символ или слово из потока
ввода;

fgetpos считывает позицию в потоке;

fgets считывает строку из потока;

fileno проверяет и обнуляет статус потока;

fopen открывает поток;

fprintf форматирует вывод;

fpurge "сбрасывает" поток;

fputc выводит символ и слово в поток;

fputs выводит строку в поток;

fread считывает двоичные данные потока ввода/вывода;

freopen функции открытия потока;

fropen открывает поток;

fscanf форматирует ввод;

fseek устанавливает позицию в потоке;

fsetpos устанавливает позицию в потоке;

ftell считывает позицию из потока;

fwrite записывает двоичные данные потока ввода/вывода;

getc считывает последующий символ в потоке ввода;

getchar считывает последующий символ в потоке ввода;

gets считывает строку из потока;

getw считывает последующий символ или слово в потоке
ввода;

mktemp создает имя временного файла (уникальное);

perror сообщает об ошибке;

printf форматирует вывод;

putc выводит символ в поток;

putchar выводит символ в поток;

puts выводит строку в поток;

putw выводит слово в поток;

remove удаляет запись из каталога (файла);

rewind перенаправляет поток;

scanf форматирует ввод;

setbuf производит буферизацию;

setbuffer производит буферизацию;

setlinebuf
устанавливает режим построчной буферизации;

setvbuf устанавливает режим построчной буферизации;

sprintf форматирует вывод;

sscanf форматирует ввод;

strerror выводит сообщение об ошибке;

sys_errlist
выводит список ошибок;

sys_nerr выводит код ошибки;

tempnam создает название временного файла;

tmpfile создает название временного файла;

tmpnam создает название временного файла;

ungetc возвращает символ в поток ввода;

vfprintf форматирует вывод;

vfscanf форматируемый ввод;

vprintf форматирует вывод;

vscanf форматируемый ввод;

vsprintf форматирует вывод

vsscanf форматируемый ввод.

СООТВЕТСТВИЕ СТАНДАРТАМ
Библиотека stdio соответствует ANSI X3.159-1989 (``ANSI
C'').
Читать новости Linux в Telegram
Linux - stdio - стандартные библиотечные функции ввода/вывода (I/O)
Мы в соцсетях ✉