Spec-Zone.ru › GNU Fortran 11

9.116 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-11.1.0/gfortran/FSEEK.html

Spec-Zone.ru

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