Spec-Zone.ru › GNU Fortran 13

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

Spec-Zone.ru

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