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