9.260 STAT — Получение статуса файла
- Описание:
-
Эта функция возвращает информацию о файле. Права доступа к самому файлу не требуются, но требуются права на выполнение (поиск) во всех директориях, ведущих к файлу.
Элементы, которые получаются и сохраняются в массиве
VALUES:VALUES(1)Идентификатор устройства VALUES(2)Номер индекса VALUES(3)Режим файла VALUES(4)Количество ссылок VALUES(5)UID владельца VALUES(6)GID владельца VALUES(7)ID устройства, содержащего запись о файле в каталоге (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-10.2.0/gfortran/STAT.html