Spec-Zone.ru › GNU Fortran 5

9.101 FLUSH — Блок(и) ввода-вывода Flush

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

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

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

Spec-Zone.ru

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