Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Int pvm_freebuf(int bufferid);






В библиотеке PVM предусмотрено шесть полезных функций управления буферами, которые можно использовать для установки, идентификации и динамического создания буферов отправки и приема. Функция pvm_getsbuf () используется для получения номера активного буфера отправки. Если теку щ его буфера отправки не существует, функция возвра щ ает число 0. Функция pvm_getrbuf () используется для получения идентификационного номера активного буфера приема. Следует иметь в виду, что при каждом получении сооб щ ения создается новый активный буфер, а теку щ ий буфер очи щ ается. Если теку щ его буфера приема не су щ ествует, функция возвра щ ает число 0. Функция pvm_setsbuf () устанавливает параметр bufferid равным номеру активного буфера отправки. Обычно PVM-задача имеет только один буфер отправки. Но иногда возникает необходимость в нескольких таких буферах. Хотя в любой момент времени активным может быть только один буфер отправки, PVM-задача может создавать дополнительные буфера отправки с по м о щ ью функции pvm_mkbuf (). Функцию pvm_setsbuf () можно использовать для установки в качестве активного буфера одного из буферов отправки, которые были созданы во время работы приложения. Эта функция возвра щ ает идентификатор предыду щ его активного буфера отправки. Функция pvm_setrbuf () устанавливает активный буфер прие м а равны м значению bufferid. По м ните, что PVM-функции распаковки работают с активны м буферо м прие м а. Если су щ ествует несколько буферов, функция pvm_setrbuf () позволит при м енить теку щ ий буфер д л я использования функция м и распаковки. При успешно м выполнении функция pvm_setrbuf () возвра щ ает идентификатор предыду щ его активного буфера. Если идентификатора буфера, переданного функции pmv_setrbuf (), не су щ ествует или он оказался недействительны м, функция возвратит одно из следую щ их сооб щ ений об ошибке: PvmBadParam или PvmNoSuchbuf. Функция pvm_mkbuf () используется для создания нового буфера сооб щ ений. Пара м етр Code определяет фор м ат данных, которые будут содержаться в это м буфере: XDR, собственный фор м ат компьютера или формат, использую щ ий указатели и размеры. Поэтому пара м етр Code мо-жет содержать одно из трех значений:

PvmDataDefault XDR

PvmDataRaw В зависи м ости от м арки ко м пьютера (без кодирования)

PvmDataInPlace Используются только указатели на данные и их размер

При успешном выполнении функция pvm_mkbuf () возвра щ ает идентификатор нового активного буфера, в противном случае — отрицательное значение. Для каждого обра щ ения к функции pvm_mkbuf (), если буфер отправки больше не будет нужен, необходи м о вызвать функцию pvm_freebuf (), которая освободит память, выделенную функцией pvm_mkbuf (). Функцию pvm_freebuf () с л едует испо л ьзовать то л ько в случае, когда сооб щ ение уже отправлено и в буфере нет никакой необходимости.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.