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
- См. также:
Далее: 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