Spec-Zone.ru › GNU Fortran 10

9.110 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-10.2.0/gfortran/FLUSH.html

Spec-Zone.ru

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