Функция Fstat в C

Funkcia Fstat V C



Функция fstat() вызывает систему для возврата информации (относительно некоторого файла), которая зависит от дескриптора этого файла. Эта функция получает информацию о файле, связанном с дескриптором файла, также известным как «fildes», а затем записывает эту информацию в ячейку памяти, на которую указывает буфер. Тип возвращаемого значения этой функции — целое число. Он возвращает значение «0», если программа выполняется успешно. В противном случае он возвращает функции «-1» в случае неудачного выполнения. Ошибка выполнения для этой функции может быть вызвана некоторыми конкретными причинами, например, если поля функции имеют недопустимый дескриптор для файла, если ошибка чтения для ввода и вывода происходит из файла, и если ячейка памяти (структура), где буфер указывает на запись информации о файле, в которой недостаточно выделенной памяти для размера файла.

Процедура

В этой статье следует последовательный порядок реализации функции fstat() для получения информации о файле. Сначала мы изучим синтаксис этой функции, параметры, необходимые для этой функции. Затем мы используем этот синтаксис для выполнения некоторых примеров для функции fstat().







Синтаксис

Метод объявления функции fstat(), которая позволяет программе получить доступ к информации о файле, упоминается в следующей строке:



$ #include
$ инт государство ( инт поля , структура статистика * буф ) ;

Всякий раз, когда нам нужно вызвать функцию в нашей программе, мы должны сначала импортировать файлы заголовков, которые поддерживают эту функцию, как «sys/stat.h». Тип возвращаемого значения для функции всегда «int», а параметр включает «fildes» с типом данных «int». Filedes — это дескриптор файла, информацию о котором мы хотим получить. Другим параметром, который передается функции, является указатель «buf». Это указатель «struct stat», который указывает на структуру, в которой мы хотим хранить данные о файле. Это краткое описание входных параметров для функции fstat().



Пример

Мы используем ранее упомянутое описание и запускаем программу для получения информации о любом/конкретном файле через нашу программу. Мы пишем эту программу в компиляторе Microsoft Visual Studio C для выполнения. Мы начнем с примера, сначала создав проект, а затем добавив его в репозиторий C в Visual Studio. Чтобы добавить проект в файлы C, мы включаем «.c» с именем проекта и добавляем его в исходный файл проекта. Следующим шагом после создания проекта является вызов всех необходимых библиотек для функций, которые мы можем использовать позже в программе. Поскольку в этой статье мы реализуем пример для функции fstat(), мы должны включить заголовочный файл «sys/stat.h». Для информации о файле нам нужно знать тип устройства, на котором существует файл. Чтобы узнать тип данных для устройства, мы включаем заголовок «type. ч» в программе.





Информация о файле должна включать время последнего открытия файла и внесенные в него изменения. Чтобы получить доступ к этим функциям вызова времени, мы добавляем заголовочный файл «times. h» и «fcntl. h» для функций доступа к файлам. Последний заголовок «stdio. h» также включен в программу для вызова методов printf() и scanf() в программе. Файлы заголовков, которые мы обсуждали для включения в программу, следующие:

$ #include
$ #include
$ #include
$ #include
$ #include <время.ч>

После того, как ранее упомянутые заголовочные файлы были успешно импортированы в программу, мы собираем программу для получения информации о конкретном файле. Мы объявляем функцию, имеющую возвращаемый тип, как «int» с именем «main». В этой основной функции мы объявляем массив «char» и присваиваем ему имя файла, для которого нам нужно знать информацию. Затем мы определяем «статистическую информацию» с типом данных «структура». Эта структура — место, где мы храним информацию о файле.



Затем мы определяем другую переменную с именем «file_descriptor» с типом данных «integer». В «условии if» мы запрашиваем разрешение на операции чтения и записи для файла, если он существует, передавая «S_IWUSR» и имя массива функции «create()», которая вызывает разрешения для файла, если он существует. он существует или создайте новый файл в противном случае. Мы передаем эту функцию create() в «условие if», которое указывает, что если значение функции create() меньше нуля, то возникает ошибка, что файл необходимо создать. Если fstat() с параметрами «file_descriptor» и «information» и «адрес места, где хранится информация о файле» не равен нулю, мы отображаем возвращаемое fstat() значение, которое является информацией о файле. . И мы печатаем информацию в виде атрибутов, например. идентификатор устройства, в котором хранится файл, номер инода устройства, режим защиты файла, идентификатор пользователя, идентификатор группы и номер ссылки (жесткая форма).

После отображения этих атрибутов мы выходим из операторов и закрываем файл с помощью метода close(). Затем отсоедините файл, вызвав метод unlink().

#include
#include
#include
#include
#include <время.ч>

главный ( ) {
уголь множество [ ] знак равно 'amp.файл' ;
структура статистическая информация ;
инт дескриптор файла ;
если ( ( дескриптор файла знак равно сделанный ( множество , S_IWUSR ) ) < 0 )
ошибка ( 'Ошибка создания ()' ) ;
еще {
если ( государство ( дескриптор файла , & Информация ) знак равно 0 )
ошибка ( 'Ошибка fstat()' ) ;
еще {
ставит ( 'значения fstat():' ) ;
printf ( 'инод: %d \n ' , ( инт ) Информация. st_ino ) ;
printf ( ' идентификатор_устройства: %d \n ' , ( инт ) Информация. st_dev ) ;
printf ( ' режим устройства: %08x \n ' , Информация. st_mode ) ;
printf ( ' no_of_hard_links: %d \n ' , Информация. st_nlink ) ;
printf ( ' u_id: %d \n ' , ( инт ) Информация. st_uid ) ;
printf ( ' g_id: %d \n ' , ( инт ) Информация. st_gid ) ;
}
Закрыть ( дескриптор файла ) ;
разъединить ( множество ) ;
}
}

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

Вывод

Мы использовали функцию fstat() для доступа к информации о файле. Сначала мы изучили синтаксис функции fstat() с полным описанием параметров функции. Затем мы написали программу для этой функции, в которой мы сначала получили доступ к разрешению нашего владельца файла, а затем прочитали файл и отобразили атрибуты, которые мы хотели получить из информации о файле. Мы изо всех сил старались дать вам понять концепцию fstat() и надеемся, что это поможет вам в ваших программах.