Spec-Zone.ru › GNU Fortran 5

9.248 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-5.4.0/gfortran/STAT.html

Spec-Zone.ru

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