Spec-Zone.ru › GNU Fortran 12

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

Spec-Zone.ru

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