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 лежит на
пользователе.
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