8.259 STAT — Получение состояния файла
- Описание:
-
Эта функция возвращает информацию о файле. Разрешения на сам файл не требуются, но необходимо разрешение на выполнение (поиск) во всех директориях, ведущих к файлу.
Элементы, которые получаются и хранятся в массиве
VALUES:VALUES(1)Идентификатор устройства VALUES(2)Номер узла VALUES(3)Режим файла VALUES(4)Количество ссылок VALUES(5)UID владельца VALUES(6)GID владельца VALUES(7)Идентификатор устройства, содержащего запись о файле в каталоге (0, если недоступно) VALUES(8)Размер файла (байты) VALUES(9)Время последнего доступа VALUES(10)Время последней модификации VALUES(11)Время последнего изменения состояния файла VALUES(12)Предпочтительный размер блока ввода/вывода (-1, если недоступно) VALUES(13)Количество выделенных блоков (-1, если недоступно) Не все эти элементы актуальны на всех системах. Если элемент не актуален, он возвращается как 0.
Этот встроенный элемент представлен как в виде подпрограммы, так и в виде функции; однако в любом данном программном модуле можно использовать только одну форму.
- Стандарт:
-
Расширение GNU
- Класс:
-
Подпрограмма, функция
- Синтаксис:
-
CALL STAT(NAME, VALUES [, STATUS])STATUS = STAT(NAME, VALUES) - Аргументы:
-
NAME Тип должен быть CHARACTER, по умолчанию и корректный путь в файловой системе.VALUES Тип должен быть INTEGER(4), DIMENSION(13).STATUS (Необязательно) флаг состояния типа INTEGER(4). Возвращает 0 при успехе и системную ошибку в противном случае. - Пример:
-
PROGRAM test_stat INTEGER, DIMENSION(13) :: buff INTEGER :: status CALL STAT("/etc/passwd", buff, status) IF (status == 0) THEN WRITE (*, FMT="('Device ID:', T30, I19)") buff(1) WRITE (*, FMT="('Inode number:', T30, I19)") buff(2) WRITE (*, FMT="('File mode (octal):', T30, O19)") buff(3) WRITE (*, FMT="('Number of links:', T30, I19)") buff(4) WRITE (*, FMT="('Owner''s uid:', T30, I19)") buff(5) WRITE (*, FMT="('Owner''s gid:', T30, I19)") buff(6) WRITE (*, FMT="('Device where located:', T30, I19)") buff(7) WRITE (*, FMT="('File size:', T30, I19)") buff(8) WRITE (*, FMT="('Last access time:', T30, A19)") CTIME(buff(9)) WRITE (*, FMT="('Last modification time', T30, A19)") CTIME(buff(10)) WRITE (*, FMT="('Last status change time:', T30, A19)") CTIME(buff(11)) WRITE (*, FMT="('Preferred block size:', T30, I19)") buff(12) WRITE (*, FMT="('No. of blocks allocated:', T30, I19)") buff(13) END IF END PROGRAM - См. также:
Для получения состояния открытого файла: FSTAT Для получения состояния ссылки: LSTAT
Далее: STORAGE_SIZE, Предыдущее: SRAND, Вверх: Встроенные процедуры [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.1.0/gfortran/STAT.html