Spec-Zone.ru › GNU Fortran 9

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

Spec-Zone.ru

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