Директива #include (cc++/)#include directive (c/c++)

ОПИСАНИЕ

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

Соотношение потока с файлом прекращается при закрытии файла. Перед
прекращением потоки вывода очищаются (flushed) (содержимое незаписанного
буфера передаётся в системное окружение). Значение указателя на объект
FILE после закрытия файла становится неопределённым (мусорным).

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

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

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

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

Library Macros

Following are the macros defined in the header stdio.h −

Sr.No. Macro & Description
1

NULL

This macro is the value of a null pointer constant.

2

_IOFBF, _IOLBF and _IONBF

These are the macros which expand to integral constant expressions with distinct values and suitable for the use as third argument to the setvbuf function.

3

BUFSIZ

This macro is an integer, which represents the size of the buffer used by the setbuf function.

4

EOF

This macro is a negative integer, which indicates that the end-of-file has been reached.

5

FOPEN_MAX

This macro is an integer, which represents the maximum number of files that the system can guarantee to be opened simultaneously.

6

FILENAME_MAX

This macro is an integer, which represents the longest length of a char array suitable for holding the longest possible filename. If the implementation imposes no limit, then this value should be the recommended maximum value.

7

L_tmpnam

This macro is an integer, which represents the longest length of a char array suitable for holding the longest possible temporary filename created by the tmpnam function.

8

SEEK_CUR, SEEK_END, and SEEK_SET

These macros are used in the fseek function to locate different positions in a file.

9

TMP_MAX

This macro is the maximum number of unique filenames that the function tmpnam can generate.

10

stderr, stdin, and stdout

These macros are pointers to FILE types which correspond to the standard error, standard input, and standard output streams.

Константы

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

Имя Примечания
отрицательное целое число типа , используемое для обозначения конца файла
целое число, равное размеру буфера, используемое функцией
размер массива , достаточного для хранения имени любого файла, который может быть открыт
число файлов, которые могут быть открыты одновременно; как минимум равно 8
сокращение от «input/output fully buffered» (полностью буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса блока буфера ввода и вывода для открытого потока
сокращение от «input/output line buffered» (линейно буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса линии буфера ввода и вывода для открытого потока
сокращение от «input/output not buffered» (не буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса небуферированого ввода и вывода для открытого потока
размер массива , достаточного для хранения временного имени файла, сгенерированного функцией
макрос, расширяющий константу ; то есть константу, представляющую значение указателя, гарантированно указывающего несуществующий адрес объекта в памяти
целое число, которое может быть передано функции для запроса позиционирования относительно текущей позиции в файле
целое число, которое может быть передано функции для запроса позиционирования относительно конца файла
целое число, которое может быть передано функции для запроса позиционирования относительно начала файла
максимальное число уникальных имён файлов, генерируемых функцией ; как минимум 25

Функции

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

Имя Примечания
Функции для файловых операций
закрывает файл, ассоциированный с переданным ей значением FILE *
открывают файл для определённых типов чтения и записи
удаляет файл (стирая его)
переименовывает файл
работает аналогично fseek (stream, 0L, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
очищает EOF и индикаторы ошибок для данного потока
проверяет, установлен ли индикатор EOF для данного потока
проверяет, установлен ли индикатор ошибок для данного потока
принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
возвращает один символ из файла
получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
записывает один символ в файл
записывает строку в файл
возвращает указатель позиции файла, который может быть передан fseek
производит смещение от текущей позиции в файле на указанное количество байт, или от его начала или конца, в указанном направлении.
устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)
читает данные из файла
записывает данные в файл
считывает и возвращает символ из данного потока и изменяет указатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза
имеет аналогичный эффект, что и getc(stdin)
считывает символы из до символа перевода строки и хранит их в своём единственном аргументе
используются для вывода в стандартный поток вывода
используются для вывода в файл
используются для вывода в массив типа (Строка в языке Си)
записывает сообщение об ошибке в
записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза
аналогичны putc(stdout)
используются для ввода из стандартного потока ввода
используются для ввода из файла
используются для ввода из массива (то есть Строка в языке Си)
устанавливает режим буферизации для данного потока
создает имя временного файла
помещает символ обратно в поток
выводит символьную строку в

Вывести атрибуты файла, директории

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

#include <cstdlib>
#include <cstring>
#include <iostream>
#include <io.h>
#include <ctime>

using namespace std;

int main(int argc, char** argv) {
		if(argc==1) exit(1);
		struct _finddata_t fileinfo;
		char str;
		strcpy(str,argv);
		long done = _findfirst(str, &fileinfo);
		char szBuffer;

		//Преобразование времени
		ctime_s ( szBuffer, _countof (szBuffer),&fileinfo.time_write);
		
		printf ( " %-24s %.24s %9ld ", fileinfo.name, szBuffer, fileinfo.size);
		cout<<"\n";
		printf( ( fileinfo.attrib & _A_SUBDIR ) ? "d" : "-" );
		printf( ( fileinfo.attrib & _A_RDONLY ) ? "r" : "-" );
		printf( ( fileinfo.attrib & _A_HIDDEN ) ? "h" : "-" );
		printf( ( fileinfo.attrib & _A_SYSTEM ) ? "s" : "-" );
		printf( ( fileinfo.attrib & _A_ARCH )   ? "a" : "-" );
		printf( ( fileinfo.attrib & _A_NORMAL ) ? "n" : "-" );
		cout<<"\n";
		
		_findclose(done);
}

_findfirst _findnext

io.h — поиск файлов.
Находит файлы по указанному пути, соответствующие маске.

Маска - строка, критерий поиска, содержащая символы * (любая последовательность любых символов) и ? (любой один символ) 
path - строка, в которой содержится комбинация пути и маски.

fileinfo — указатель на объект структуры , в который запишется информация о найденном файле. Структура _finddata_t содержит следующие поля:

unsigned attrib - содержит информацию об атрибутах файла. 
_A_NORMAL - Обычный файл без запретов на чтение или запись. 
_A_RDONLY - Файл только для чтения. 
_A_HIDDEN - Скрытый файл. 
_A_SYSTEM - Системный файл. 
_A_SUBDIR - Директория. 
_A_ARCH - Архивный файл. 
time_t time_create - время/дата создания файла (равно -1 для FAT систем). 
time_t time_access - время/дата последнего открытия файла (равно -1 для FAT систем). 
time_t time_write - время/дата последнего редактирования файла 
_fsize_t size - размер файла 
char name - имя файла

Если всё пройдет успешно, информация о первом найденном файле запишется в объект структуры _finddata_t. При этом в оперативной памяти сформируется «список», обладающий внутренним указателем, который изначально будет установлен на первом найденном файле. В этом случае функция вернет уникальный номер, связанный с полученной группой файлов. Если поиск завершится неудачей, функция вернет -1.

_findnext(long done, _finddata_t * fileinfo) Функция осуществляет переход на следующий найденный файл в группе.

done — уникальный номер группы файлов в памяти.
fileinfo — указатель на объект структуры, в который запишется информация о следующем найденном файле.
Если достигнут конец списка файлов, функция вернет -1.

_findclose(long done) Функция очищает память от группы найденных файлов. done — уникальный номер группы файлов в памяти.

Константы

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

Имя Примечания
отрицательное целое число типа , используемое для обозначения конца файла
целое число, равное размеру буфера, используемое функцией
размер массива , достаточного для хранения имени любого файла, который может быть открыт
число файлов, которые могут быть открыты одновременно; как минимум равно 8
сокращение от «input/output fully buffered» (полностью буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса блока буфера ввода и вывода для открытого потока
сокращение от «input/output line buffered» (линейно буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса линии буфера ввода и вывода для открытого потока
сокращение от «input/output not buffered» (не буферируемый ввод-вывод); целое число, которое может быть передано функции для запроса небуферированого ввода и вывода для открытого потока
размер массива , достаточного для хранения временного имени файла, сгенерированного функцией
макрос, расширяющий константу ; то есть константу, представляющую значение указателя, гарантированно указывающего несуществующий адрес объекта в памяти
целое число, которое может быть передано функции для запроса позиционирования относительно текущей позиции в файле
целое число, которое может быть передано функции для запроса позиционирования относительно конца файла
целое число, которое может быть передано функции для запроса позиционирования относительно начала файла
максимальное число уникальных имен файлов, генерируемых функцией ; как минимум 25

Функции

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

Имя Примечания
Функции для файловых операций
закрывает файл, ассоциированный с переданным ей значением FILE *
открывают файл для определённых типов чтения и записи
удаляет файл (стирая его)
переименовывает файл
работает аналогично fseek (stream, 0L, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
очищает EOF и индикаторы ошибок для данного потока
проверяет, установлен ли индикатор EOF для данного потока
проверяет, установлен ли индикатор ошибок для данного потока
принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
возвращает один символ из файла
получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
записывает один символ в файл
записывает строку в файл
возвращает указатель позиции файла, который может быть передан fseek
производит смещение от текущей позиции в файле на указанное количество байт, или от его начала или конца, в указанном направлении.
устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)
читает данные из файла
записывает данные в файл
считывает и возвращает символ из данного потока и изменяет указатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза
имеет аналогичный эффект, что и getc(stdin)
считывает символы из до символа перевода строки и хранит их в своём единственном аргументе
используются для вывода в стандартный поток вывода
используются для вывода в файл
используются для вывода в массив типа (Строка в языке Си)
записывает сообщение об ошибке в
записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза
аналогичны putc(stdout)
используются для ввода из стандартного потока ввода
используются для ввода из файла
используются для ввода из массива (то есть Строка в языке Си)
устанавливает режим буферизации для данного потока
создает имя временного файла
помещает символ обратно в поток
выводит символьную строку в

Функции

Имя Описание Соответствие стандартам
Преобразование типов C89 C99
строка в число двойной точности (double; НЕ float) Да Да
строка в целое число (integer) Да Да
строка в длинное целое число (long integer) Да Да
строка в длинное целое число (long long integer) Нет Да
строка в число двойной точности (double) Да Да
строка в число одиночной точности (float) Нет Да
строка в длинное целое число (long integer) Да Да
строка в длинное двойной точности (long double) Нет Да
строка в длинное целое число (long long integer) Нет Да
строка в беззнаковое длинное целое число (unsigned long integer) Да Да
строка в беззнаковое длинное целое число (unsigned long long integer) Нет Да
Генерация псевдослучайных последовательностей
генерирует псевдослучайное значение Да Да
устанавливает начальное значение генератора псевдослучайных чисел Да Да
Выделение и освобождение памяти
выделяет память из кучи Да Да
освобождает память обратно в кучу Да Да
Контроль процесса выполнения программы
некорректное завершение выполнения Да Да
регистрирует обратный вызов функции, которую нужно будет выполнить перед завершением работы программы Да Да
завершает выполнение программы Да Да
извлекает переменные окружения Да Да
выполняет внешнюю команду Да Да
Сортировка и поиск
двоичный поиск в массиве Да Да
сортировка массива Да Да
Математика
, абсолютная величина целого числа Да Да
, Нет Да
деление целых чисел Да Да
Многобайтовые операции/ широкие символы
размер многобайтовых символов Нет Да
преобразование многобайтовых и широких символов Нет Да

NULL

Заголовочные файлы и определяют макрос NULL, являющийся константным нуль-указателем, который гарантированно указывает на некорректный адрес памяти.

Варианты

NULL может быть определен как константное выражение, равное целому нулевому числу (нулю), длинному целому нулю, или нуль приводится к указателю типа void *:

#define NULL  0
#define NULL  0L
#define NULL  ((void *) 0)

Несмотря на то, что константа нуль-указателя всегда представляется в Си символьной константой 0 или 0, приведённым к void-указателю, реальное битовое представление подобного указателя зависит от системы и может содержать однобитовые значения.

COLOPHON top

       This page is part of release 5.08 of the Linux man-pages project.  A
       description of the project, information about reporting bugs, and the
       latest version of this page, can be found at
       https://www.kernel.org/doc/man-pages/.

                                 2017-11-26                         STDIO(3)

Pages that refer to this page:
pmsnap(1), 
exit(2), 
_exit(2), 
_Exit(2), 
fcntl(2), 
fcntl64(2), 
vfork(2), 
addch(3x), 
clearerr(3), 
clearerr_unlocked(3), 
curs_addch(3x), 
echochar(3x), 
exit(3), 
feof(3), 
feof_unlocked(3), 
ferror(3), 
ferror_unlocked(3), 
fflush_unlocked(3), 
fgetc_unlocked(3), 
fgets_unlocked(3), 
fgetwc_unlocked(3), 
fgetws_unlocked(3), 
fileno(3), 
fileno_unlocked(3), 
fputc_unlocked(3), 
fputs_unlocked(3), 
fputwc_unlocked(3), 
fputws_unlocked(3), 
fread_unlocked(3), 
fwrite_unlocked(3), 
getchar_unlocked(3), 
getc_unlocked(3), 
getwchar_unlocked(3), 
getwc_unlocked(3), 
mvaddch(3x), 
mvwaddch(3x), 
pclose(3), 
popen(3), 
putchar_unlocked(3), 
putc_unlocked(3), 
putwchar_unlocked(3), 
putwc_unlocked(3), 
stderr(3), 
stdin(3), 
stdout(3), 
unlocked_stdio(3), 
waddch(3x), 
wechochar(3x)

Функции

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

Имя Примечания
Функции для файловых операций
закрывает файл, ассоциированный с переданным ей значением FILE *
открывают файл для определённых типов чтения и записи
удаляет файл (стирая его)
переименовывает файл
работает аналогично fseek (stream, 0L, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
очищает EOF и индикаторы ошибок для данного потока
проверяет, установлен ли индикатор EOF для данного потока
проверяет, установлен ли индикатор ошибок для данного потока
принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
возвращает один символ из файла
получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
записывает один символ в файл
записывает строку в файл
возвращает указатель позиции файла, который может быть передан fseek
производит смещение от текущей позиции в файле на указанное количество байт, или от его начала или конца, в указанном направлении.
устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)
читает данные из файла
записывает данные в файл
считывает и возвращает символ из данного потока и изменяет указатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза
имеет аналогичный эффект, что и getc(stdin)
считывает символы из до символа перевода строки и хранит их в своём единственном аргументе
используются для вывода в стандартный поток вывода
используются для вывода в файл
используются для вывода в массив типа (Строка в языке Си)
записывает сообщение об ошибке в
записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза
аналогичны putc(stdout)
используются для ввода из стандартного потока ввода
используются для ввода из файла
используются для ввода из массива (то есть Строка в языке Си)
устанавливает режим буферизации для данного потока
создает имя временного файла
помещает символ обратно в поток
выводит символьную строку в

Функции

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

Имя Примечания
Функции для файловых операций
закрывает файл, ассоциированный с переданным ей значением FILE *
открывают файл для определённых типов чтения и записи
удаляет файл (стирая его)
переименовывает файл
работает аналогично fseek (stream, 0L, SEEK_SET), вызванному для потока, со сбросом индикатора ошибок
создает и открывает временный файл, удаляемый при закрытии через fclose()
Функции для операций ввода-вывода
очищает EOF и индикаторы ошибок для данного потока
проверяет, установлен ли индикатор EOF для данного потока
проверяет, установлен ли индикатор ошибок для данного потока
принудительно записывает вывод, предназначенный для помещения в буфер, в файл, ассоциированный с данным потоком
сохраняет позицию указателя файла потока, ассоциированный с его первым аргументом (FILE *), в его второй аргумент (fpos_t *)
возвращает один символ из файла
получает строку из файла (оканчивающуюся символом перевода строки или конца файла)
записывает один символ в файл
записывает строку в файл
возвращает указатель позиции файла, который может быть передан fseek
производит смещение от текущей позиции в файле на указанное количество байт, или от его начала или конца, в указанном направлении.
устанавливает указатель позиции файла потока, ассоциированный с его первым аргументом (FILE *), как хранимый во втором его аргументе (fpos_t *)
читает данные из файла
записывает данные в файл
считывает и возвращает символ из данного потока и изменяет указатель позиции файла; позволяет использоваться как макрос с теми же эффектами, что и fgetc, кроме того, что может вычислять поток более одного раза
имеет аналогичный эффект, что и getc(stdin)
считывает символы из до символа перевода строки и хранит их в своём единственном аргументе
используются для вывода в стандартный поток вывода
используются для вывода в файл
используются для вывода в массив типа (Строка в языке Си)
записывает сообщение об ошибке в
записывает и возвращает символ в поток и изменяет указатель позиции файла на него; можно использовать как макрос с теми же свойствами, что и fputc, кроме того, что он может обрабатывать поток более одного раза
аналогичны putc(stdout)
используются для ввода из стандартного потока ввода
используются для ввода из файла
используются для ввода из массива (то есть Строка в языке Си)
устанавливает режим буферизации для данного потока
создает имя временного файла
помещает символ обратно в поток
выводит символьную строку в
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector