next up previous contents
Next: Динамические группы процессов Up: Обмен сообщениями Previous: Передача и прием данных   Contents

Распаковка данных

Следующие подпрограммы на C распаковывают (многократно) данные определенных типов из активного буфера приема. На уровне приложения они должны соответствовать подпрограммам упаковки - по типу, числу элементов и шагу; nitem - число элементов данного типа для распаковки, а stride - шаг.

int info = pvm_upkbyte( char *cp, int nitem,

    int stride)

int info = pvm_upkcplx( float *xp, int nitem,

    int stride)

int info = pvm_upkdcplx( double *zp, int nitem,

    int stride)

int info = pvm_upkdouble( double *dp, int nitem,

    int stride)

int info = pvm_upkfloat( float *fp, int nitem,

    int stride)

int info = pvm_upkint( int *np, int nitem,

    int stride)

int info = pvm_upklong( long *np, int nitem,

    int stride)

int info = pvm_upkshort(short *np, int nitem,

    int stride)

int info = pvm_upkstr( char *cp)

int info = pvm_unpackf( const char *fmt, ...)

Подпрограмма pvm_unpackf() имеет printf-подобный формат выражений, которым указывается, какие данные распаковывать из буфера приема и как.

Единственная Фортран-подпрограмма выполняет все перечисленные функции приведенных C-подпрограмм.

call pvmfunpack( what, xp, nitem, stride, info)

Аргумент xp - это массив, куда помещается то, что распаковывается. Целочисленный аргумент what указывает тип данных для распаковки. (Та же опция what, что и для pvmfpack()).



2004-06-22