Ввод/вывод файлов
Заголовок <stdio.h> предоставляет общую поддержку операций с файлами и функции с возможностями ввода/вывода узких символов.
Заголовок <wchar.h> предоставляет функции с возможностями ввода/вывода символов расширенной ширины.
Потоки ввода/вывода обозначаются объектами типа FILE, к которым можно получить доступ и которые можно обрабатывать только через указатели типа FILE*. Каждый поток связан с внешним физическим устройством (файлом, стандартным потоком ввода, принтером, последовательным портом и т. д.).
Типы
Определено в заголовке <stdio.h> |
|
|---|---|
| тип объекта, способный хранить всю информацию, необходимую для управления потоком ввода/вывода C (typedef) |
|
| тип объекта без массива, способный однозначно указать позицию и состояние многобайтового анализатора в файле (typedef) |
|
Предопределенные стандартные потоки
Определено в заголовке <stdio.h> |
|
|---|---|
выражение типа FILE* связанное со входным потокомвыражение типа FILE* связанное с выходным потокомвыражение типа FILE* связанное с потоком ошибок вывода (макроконстанта) |
|
Функции
Доступ к файлам |
|
Определено в заголовочном файле <stdio.h> |
|
|---|---|
|
(C11) | открывает файл (функция) |
|
(C11) | открывает существующий поток с другим именем (функция) |
| закрывает файл (функция) |
|
| синхронизирует выходной поток с фактическим файлом (функция) |
|
| устанавливает буфер для потока файла (функция) |
|
| устанавливает буфер и его размер для потока файла (функция) |
|
Определено в заголовочном файле <wchar.h> |
|
|
(C95) | переключает поток файла между вводом/выводом широких символов и вводом/выводом узких символов (функция) |
Прямой ввод/вывод |
|
Определено в заголовочном файле <stdio.h> |
|
| считывает данные из файла (функция) |
|
| записывает данные в файл (функция) |
|
Неформатированный ввод/вывод |
|
Узкий символ |
|
Определено в заголовочном файле <stdio.h> |
|
| получает символ из потока файла (функция) |
|
| получает строку символов из потока файла (функция) |
|
| записывает символ в поток файла (функция) |
|
| записывает строку символов в поток файла (функция) |
|
считывает символ из stdin (функция) |
|
|
(удалено в C11)(C11) | считывает строку символов из stdin (функция) |
записывает символ в stdout (функция) |
|
записывает строку символов в stdout (функция) |
|
| возвращает символ в поток файла (функция) |
|
Широкий символ |
|
Определено в заголовочном файле <wchar.h> |
|
|
(C95) | получает широкий символ из потока файла (функция) |
|
(C95) | получает широкую строку из потока файла (функция) |
|
(C95) | записывает широкий символ в поток файла (функция) |
|
(C95) | записывает широкую строку в поток файла (функция) |
|
(C95) | считывает широкий символ из stdin (функция) |
|
(C95) | записывает широкий символ в stdout (функция) |
|
(C95) | возвращает широкий символ в поток файла (функция) |
Форматированный ввод/вывод |
|
Узкий символ |
|
Определено в заголовочном файле <stdio.h> |
|
|
(C11)(C11)(C11) | считывает форматированный ввод из stdin, потока файла или буфера (функция) |
|
(C99)(C99)(C99)(C11)(C11)(C11) | считывает форматированный ввод из stdin, потока файла или буферас использованием переменной списка аргументов (функция) |
|
(C99)(C11)(C11)(C11)(C11) | выводит форматированный вывод в stdout, поток файла или буфер (функция) |
|
(C99)(C11)(C11)(C11)(C11) | выводит форматированный вывод в stdout, поток файла или буферс использованием переменной списка аргументов (функция) |
Широкий символ |
|
Определено в заголовочном файле <wchar.h> |
|
|
(C95)(C95)(C95)(C11)(C11)(C11) | считывает форматированный ввод широких символов из stdin, потока файла или буфера (функция) |
|
(C99)(C99)(C99)(C11)(C11)(C11) | считывает форматированный ввод широких символов из stdin, потока файла или буфера, используя список переменных аргументов (функция) |
|
(C95)(C95)(C95)(C11)(C11)(C11)(C11) | выводит форматированный ввод широких символов в stdout, поток файла или буфер (функция) |
|
(C95)(C95)(C95)(C11)(C11)(C11)(C11) | выводит форматированный ввод широких символов в stdout, поток файла или буфер, используя список переменных аргументов (функция) |
Позиционирование файла |
|
Определено в заголовке <stdio.h> |
|
|---|---|
| возвращает текущую позицию указателя файла (функция) |
|
| получает указатель позиции файла (функция) |
|
| перемещает указатель позиции файла в определенное местоположение в файле (функция) |
|
| перемещает указатель позиции файла в определенное местоположение в файле (функция) |
|
| перемещает указатель позиции файла в начало файла (функция) |
|
Обработка ошибок |
|
Определено в заголовке <stdio.h> |
|
| очищает ошибки (функция) |
|
| проверяет на конец файла (функция) |
|
| проверяет на ошибку файла (функция) |
|
отображает строку символов, соответствующую текущей ошибке, в stderr (функция) |
|
Операции с файлами |
|
Определено в заголовке <stdio.h> |
|
| удаляет файл (функция) |
|
| переименовывает файл (функция) |
|
|
(C11) | возвращает указатель на временный файл (функция) |
|
(C11) | возвращает уникальное имя файла (функция) |
Макроконстанты
Определено в заголовке <stdio.h> |
|
|---|---|
| EOF | целочисленная константа типа int и отрицательное значение (макроконстанта) |
| FOPEN_MAX | максимальное количество файлов, которые могут быть открыты одновременно (макроконстанта) |
| FILENAME_MAX | размер, необходимый для массива char для хранения самого длинного поддерживаемого имени файла (макроконстанта) |
| BUFSIZ | размер буфера, используемого setbuf (макроконстанта) |
| _IOFBF_IOLBF_IONBF | аргумент для setvbuf, указывающий на полностью буферизованный ввод/выводаргумент для setvbuf, указывающий на буферизованный ввод/вывод по строкамаргумент для setvbuf, указывающий на небуферизованный ввод/вывод (макроконстанта) |
| SEEK_SETSEEK_CURSEEK_END | аргумент для fseek, указывающий на поиск с начала файлааргумент для fseek, указывающий на поиск с текущей позиции файлааргумент для fseek, указывающий на поиск с конца файла (макроконстанта) |
| TMP_MAXTMP_MAX_S
(C11) | максимальное количество уникальных имён файлов, которые могут быть сгенерированы tmpnam,максимальное количество уникальных имён файлов, которые могут быть сгенерированы tmpnam_s (макроконстанта) |
| L_tmpnamL_tmpnam_s
(C11) | размер, необходимый для массива char для хранения результата tmpnam,размер, необходимый для массива char для хранения результата tmpnam_s (макроконстанта) |
Справочная информация
- Стандарт C23 (ISO/IEC 9899:2023):
- 7.21 Ввод/вывод <stdio.h> (стр.: TBD)
- 7.29 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: TBD)
- 7.31.11 Ввод/вывод <stdio.h> (стр.: TBD)
- 7.31.16 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: TBD)
- K.3.5 Ввод/вывод <stdio.h> (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.21 Ввод/вывод <stdio.h> (стр.: TBD)
- 7.29 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: TBD)
- 7.31.11 Ввод/вывод <stdio.h> (стр.: TBD)
- 7.31.16 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: TBD)
- K.3.5 Ввод/вывод <stdio.h> (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.21 Ввод/вывод <stdio.h> (стр.: 296-339)
- 7.29 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: 402-446)
- 7.31.11 Ввод/вывод <stdio.h> (стр.: 456)
- 7.31.16 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: 456)
- K.3.5 Ввод/вывод <stdio.h> (стр.: 586-603)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.19 Ввод/вывод <stdio.h> (стр.: 262-305)
- 7.24 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: 348-392)
- 7.26.9 Ввод/вывод <stdio.h> (стр.: 402)
- 7.26.12 Расширенные многобайтовые и широкие символьные утилиты <wchar.h> (стр.: 402)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.9 ВВОД/ВЫВОД <stdio.h>
- 4.13.6 Ввод/вывод <stdio.h>
См. также
| Документация C++ для Ввода/вывода файлов в стиле C |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io