Spec-Zone.ru › GNU Fortran 4

8.87 FLUSH — Блок(и) ввода/вывода Flush I/O

Описание:
Очищает открытые для вывода Fortran-единицы(ы). Без необязательного аргумента очищаются все единицы, в противном случае очищается только указанная.
Стандарт:
Расширение GNU
Класс:
Подпрограмма
Синтаксис:
CALL FLUSH(UNIT)
Аргументы:
UNIT (Необязательно) Тип должен быть INTEGER.
Примечание:
Начиная со стандарта Fortran 2003, имеется оператор FLUSH, который следует предпочитать FLUSH внутренней функции.

Внутренняя функция FLUSH и оператор Fortran 2003 FLUSH имеют идентичный эффект: они очищают буфер ввода/вывода библиотеки выполнения, чтобы данные стали видимыми для других процессов. Это не гарантирует, что данные записаны на диск.

На системах 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-4.9.3/gfortran/FLUSH.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API