stdio(3)

НАИМЕНОВАНИЕ
stdio - библиотека функций стандартного ввода-вывода

БИБЛИОТЕКА
Стандартная библиотека языка C (libc, -lc)

СИНТАКСИС
#include <stdio.h>

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

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

A stream is associated with an external file (which may be a physical device) by opening a file, which may involve creating a new file. Creating an existing file causes its former contents to be discarded. If a file can support positioning requests (such as a disk file, as opposed to a terminal), then a file position indicator associated with the stream is positioned at the start of the file (byte zero), unless the file is opened with append mode. If append mode is used, it is unspecified whether the position indicator will be placed at the start or the end of the file. The position indicator is maintained by subsequent reads, writes, and positioning requests. All input occurs as if the characters were read by successive calls to the fgetc(3) function; all output takes place as if all characters were written by successive calls to the fputc(3) function.

A file is disassociated from a stream by closing the file. Output streams are flushed (any unwritten buffer contents are transferred to the host environment) before the stream is disassociated from the file. The value of a pointer to a FILE object is indeterminate after a file is closed (garbage).

A file may be subsequently reopened, by the same or another program execution, and its contents reclaimed or modified (if it can be repositioned at the start). If the main function returns to its original caller, or the exit(3) function is called, all open files are closed (hence all output streams are flushed) before program termination. Other methods of program termination, such as abort(3) do not bother about closing files properly.

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

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

The stdio library is a part of the library libc and routines are automatically loaded as needed by cc(1). The SYNOPSIS sections of the following manual pages indicate which include files are to be used, what the compiler declaration for the function looks like, and which external variables are of interest.

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

  Список функций
функция | описание
clearerr(3) | проверяет и сбрасывает состояние потока
fclose(3) | закрывает поток
fdopen(3) | функции для открытия потоков
feof(3) | проверяет и сбрасывает состояние потока
ferror(3) | проверяет и сбрасывает состояние потока
fflush(3) | сбрасывает поток
fgetc(3) | считывает следующий символ или слово из входного потока
fgetpos(3) | смена указания в потоке
fgets(3) | считывает строку из потока
fileno(3) | возвращает целочисленный дескриптор аргумента потока
fmemopen(3) | open memory as stream
fopen(3) | функции для открытия потоков
fopencookie(3) | open a custom stream
fprintf(3) | вывод по формату
fpurge(3) | сбрасывает поток
fputc(3) | выводит символ или слово в поток
fputs(3) | выводит строку в поток
fread(3) | считывает двоичные данные потока ввода-вывода
freopen(3) | функции для открытия потоков
fscanf(3) | форматирует входные данные
fseek(3) | смена указания в потоке
fsetpos(3) | смена указания в потоке
ftell(3) | смена указания в потоке
fwrite(3) | считывает двоичные данные потока ввода-вывода
getc(3) | считывает следующий символ или слово из входного потока
getchar(3) | считывает следующий символ или слово из входного потока
gets(3) | считывает строку из потока
getw(3) | считывает следующий символ или слово из входного потока
mktemp(3) | создаёт имя временного файла (уникальное)
open_memstream(3) | open a dynamic memory buffer stream
open_wmemstream(3) | open a dynamic memory buffer stream
perror(3) | сообщения о системных ошибках
printf(3) | вывод по формату
putc(3) | выводит символ или слово в поток
putchar(3) | выводит символ или слово в поток
puts(3) | выводит строку в поток
putw(3) | выводит символ или слово в поток
remove(3) | удаляет запись из каталога
rewind(3) | смена указания в потоке
scanf(3) | форматирует входные данные
setbuf(3) | операции буферизации потока
setbuffer(3) | операции буферизации потока
setlinebuf(3) | операции буферизации потока
setvbuf(3) | операции буферизации потока
sprintf(3) | вывод по формату
sscanf(3) | форматирует входные данные
strerror(3) | сообщения о системных ошибках
sys_errlist(3) | сообщения о системных ошибках
sys_nerr(3) | сообщения о системных ошибках
tempnam(3) | функции для работы с временным файлом
tmpfile(3) | функции для работы с временным файлом
tmpnam(3) | функции для работы с временным файлом
ungetc(3) | возвращает символ во входной поток
vfprintf(3) | вывод по формату
vfscanf(3) | форматирует входные данные
vprintf(3) | вывод по формату
vscanf(3) | форматирует входные данные
vsprintf(3) | вывод по формату
vsscanf(3) | форматирует входные данные

СТАНДАРТЫ
C11, POSIX.1-2008.

ИСТОРИЯ
C89, POSIX.1-2001.

СМОТРИТЕ ТАКЖЕ
close(2), open(2), read(2), write(2), stdout(3), unlocked_stdio(3)

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Alexander Golubev <fatzer2@gmail.com>, Azamat Hackimov <azamat.hackimov@gmail.com>, Hotellook, Nikita <zxcvbnm3230@mail.ru>, Spiros Georgaras <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (debian-l10n-russian@lists.debian.org).