9.260 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-9.3.0/gfortran/STAT.html