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— Получение статуса файла
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-13.3.0/gfortran/STAT.html