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