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