9.248 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
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-5.4.0/gfortran/STAT.html