Spec-Zone.ru › GNU Fortran 6

9.108 FSEEK — Подпрограмма низкоуровневого позиционирования файла

Описание:

Перемещает UNIT к указанному OFFSET. Если WHENCE установлено в 0, OFFSET интерпретируется как абсолютное значение SEEK_SET, если установлено в 1, OFFSET интерпретируется как смещение относительно текущей позиции SEEK_CUR, а если установлено в 2 — относительно конца файла SEEK_END. При ошибке STATUS получает ненулевое значение. Если STATUS содержит ненулевое значение, поиск выполняется без ошибок.

Эта внутренняя процедура не полностью совместима с g77. В g77, FSEEK принимает метку оператора вместо переменной STATUS. Если FSEEK используется в старом коде, измените

CALL FSEEK(UNIT, OFFSET, WHENCE, *label)

на

INTEGER :: status
CALL FSEEK(UNIT, OFFSET, WHENCE, status)
IF (status /= 0) GOTO label

Обратите внимание, что GNU Fortran предоставляет средства потокового ввода-вывода Fortran 2003. Разработчики должны рассмотреть возможность использования новых функций потокового ввода-вывода в новом коде для обеспечения будущей переносимости. Смотрите также статус Fortran 2003.

Стандарт:

Расширение GNU

Класс:

Подпрограмма

Синтаксис:

CALL FSEEK(UNIT, OFFSET, WHENCE[, STATUS])

Аргументы:
UNIT Должен быть скаляром типа INTEGER.
OFFSET Должен быть скаляром типа INTEGER.
WHENCE Должен быть скаляром типа INTEGER. Его значение должно быть 0, 1 или 2.
STATUS (Необязательно) должен быть скаляром типа INTEGER(4).
Пример:
PROGRAM test_fseek
  INTEGER, PARAMETER :: SEEK_SET = 0, SEEK_CUR = 1, SEEK_END = 2
  INTEGER :: fd, offset, ierr

  ierr   = 0
  offset = 5
  fd     = 10

  OPEN(UNIT=fd, FILE="fseek.test")
  CALL FSEEK(fd, offset, SEEK_SET, ierr)  ! move to OFFSET
  print *, FTELL(fd), ierr

  CALL FSEEK(fd, 0, SEEK_END, ierr)       ! move to end
  print *, FTELL(fd), ierr

  CALL FSEEK(fd, 0, SEEK_SET, ierr)       ! move to beginning
  print *, FTELL(fd), ierr

  CLOSE(UNIT=fd)
END PROGRAM
См. также:

FTELL

Далее: FSTAT, Предыдущее: FREE, Наверх: Внутренние процедуры [Содержание][Индекс]

© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gfortran/FSEEK.html

Spec-Zone.ru

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