Spec-Zone.ru › GNU Fortran 10

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

Spec-Zone.ru

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