8.110 FLUSH — Flush I/O unit(s)
- Описание:
-
Очищает буфер Fortran-блока(ов), в настоящее время открытых для вывода. Без необязательного аргумента очищаются все блоки, в противном случае очищается только указанный блок.
- Стандарт:
-
Расширение GNU
- Класс:
-
Подпрограмма
- Синтаксис:
-
CALL FLUSH(UNIT) - Аргументы:
-
UNIT (Необязательно) Тип должен быть INTEGER. - Примечание:
-
Начиная со стандарта Fortran 2003, существует оператор
FLUSH, который следует предпочитатьFLUSHвстроенной функции.Встроенная функция
FLUSHи оператор Fortran 2003FLUSHимеют идентичный эффект: они очищают буфер ввода-вывода библиотеки времени выполнения, чтобы данные стали видимыми для других процессов. Это не гарантирует, что данные записаны на диск.В системах 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-13.3.0/gfortran/FLUSH.html