9.107 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-5.4.0/gfortran/FSEEK.html