Spec-Zone.ru › GNU Fortran 7

9.257 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-7.2.0/gfortran/STAT.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API