logo
Лекции - Чернышева

Пример:

#include <sys/root.h>

#include <sys/topology.h>

#include <sys/comm.h>

#include <stdio.h>

#include <math.h>

# define nLinks 1

# define n 6

# define Reg 11

void Pouse(int k) {

int i;

for ( i=0; i<k; i++) sin(i);

}

int main() {

int MyProcID;TopID = NewTop(nLinks);I; LogLinkID;error; LinkCB_t*Link;

MyProcID = GetRoot()->ProcRoot-Ю>MyProcID;

if (MyProcID==0) Link = ConnectLink(1, reg, &error)

else Link = ConnectLink(0, reg, &error);

LogLinkID=AddTop(TopID, Link);

error = AIint (TopID, nLinks, -1);

if (error) {

printf(“Ошибка инициализации\n ”)

exit(1);

}

else printf(“MyProcID =%d инициализация прошла успешно\n ” MyProcID);

if (MyProcID==0) {

int a[n];

for ( i=0; i<n; i++) a[i]=3;

ARecv (TopID, LogLinkID, a,n*sizeof(int), &error);

for ( i=0; i<n; i++) {

printf(“%d ”, a[i]);

if (!((i+1)%20) printf(“\n”));

}

}

else {

int b[n];

for ( i=0; i<n; i++) a[i]=5;

pause(2000);

ASend (TopID, LogLinkID, b,n*sizeof(int), &error);

}

error = AExit (TopID);

FreeTop (int TopID);

return error;

}

На экране: