Spec-Zone.ru › GNU Fortran 13

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 — Текущая позиция потока

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

Spec-Zone.ru

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