The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
next up previous contents
Next: Информация о файлах. Up: Работа с файлами. Previous: Получение размера файла.   Contents

Получение параметров файла.





MPI_FILE_GET_GROUP(fh, group)



IN fh дескриптор файла (дескриптор)
OUT group группа, открывшая файл (дескриптор)




int MPI_File_get_group(MPI_File fh, MPI_Group *group)
MPI_FILE_GET_GROUP(FH, GROUP, IERROR)
INTEGER FH, GROUP, IERROR
MPI::Group MPI::File::Get_group() const
MPI_FILE_GET_GROUP возвращает дубликат группы коммуникатора, использованной для открытия файла, ассоциированного с fh. Эта группа возвращается в group. Ответственность за освобождение памяти group лежит на пользователе.



MPI_FILE_GET_AMODE(fh, amode)



IN fh дескриптор файла (дескриптор)
OUT amode тип доступа, использованный при открытии файла (целое)




int MPI_File_get_amode(MPI_File fh, int *amode)
MPI_FILE_GET_AMODE(FH, AMODE, IERROR)
INTEGER FH, AMODE, IERROR
int MPI::File::Get_amode() const
MPI_FILE_GET_AMODE возвращает, в amode, тип доступа к файлу, ассоциированному с fh.

Пример На языке ФОРТРАН77 для декодирования вектора битов amode потребуется подпрограмма типа следующей:

SUBROUTINE BIT_QUERY(TEST_BIT, MAX_BIT, AMODE, BIT_FOUND)
!
!   ПРОВЕРЯЕТ,УСТАНОВЛЕН ЛИ TEST_BIT В AMODE
!   ЕСЛИ ДА, ВОЗВРАЩАЕТСЯ 1 В BIT_FOUND,
!   0 В ПРОТИВНОМ СЛУЧАЕ
!
      INTEGER TEST_BIT, AMODE, BIT_FOUND, CP_AMODE, HIFOUND
      BIT_FOUND = 0
      CP_AMODE = AMODE
 100  CONTINUE
      LBIT = 0
      HIFOUND = 0
      DO 20 L = MAX_BIT, 0, -1
         MATCHER = 2**L
         IF (CP_AMODE .GE. MATCHER .AND. HIFOUND .EQ. 0) THEN
            HIFOUND = 1
            LBIT = MATCHER
            CP_AMODE = CP_AMODE - MATCHER
         END IF
  20  CONTINUE
      IF (HIFOUND .EQ. 1 .AND. LBIT .EQ. TEST_BIT) BIT_FOUND = 1
      IF (BIT_FOUND .EQ. 0 .AND. HIFOUND .EQ. 1 .AND. &
          CP\_AMODE .GT. 0) GO TO 100
      END
Данная подпрограмма может вызываться для декодирования amode по одному биту за раз. Например, следующий фрагмент кода проверяет MPI_MODE_RDONLY.
CALL BIT_QUERY(MPI_MODE_RDONLY, 30, AMODE, BIT_FOUND)
      IF (BIT_FOUND .EQ. 1) THEN
         PRINT *, ' FOUND READ-ONLY BIT IN AMODE=', AMODE
      ELSE
         PRINT *, ' READ-ONLY BIT NOT FOUND IN AMODE=', AMODE
      END IF



Alex Otwagin 2002-12-10



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру