9.109 FLUSH — Сброс буфера ввода-вывода
- Описание:
-
Сбрасывает буфер Fortran-блоков (единиц), которые в данный момент открыты для вывода. Без необязательного аргумента, все блоки сбрасываются, иначе только указанный.
- Стандарт:
-
Расширение GNU
- Класс:
-
Подпрограмма
- Синтаксис:
-
CALL FLUSH(UNIT) - Аргументы:
-
UNIT (Необязательно) Тип должен быть INTEGER. - Примечание:
-
Начиная со стандарта Fortran 2003, есть
FLUSHоператор, который следует предпочитатьFLUSHвстроенной функции.FLUSHвстроенная функция иFLUSHоператор Fortran 2003 имеют идентичный эффект: они сбрасывают буфер Ввода-вывода библиотеки выполнения, чтобы данные стали видимыми для других процессов. Это не гарантирует, что данные записаны на диск.В системах POSIX вы можете запросить, чтобы все данные были переданы на устройство хранения, вызвав функцию
fsync, с дескриптором POSIX файла блока ввода-вывода в качестве аргумента (полученного с помощью GNU встроенной функцииFNUM). Следующий пример показывает, как это сделать:! Declare the interface for POSIX fsync function interface function fsync (fd) bind(c,name="fsync") use iso_c_binding, only: c_int integer(c_int), value :: fd integer(c_int) :: fsync end function fsync end interface ! Variable declaration integer :: ret ! Opening unit 10 open (10,file="foo") ! ... ! Perform I/O on unit 10 ! ... ! Flush and sync flush(10) ret = fsync(fnum(10)) ! Handle possible error if (ret /= 0) stop "Error calling FSYNC"
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-7.2.0/gfortran/FLUSH.html