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
- См. также:
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gfortran/FSEEK.html