rendered paste body#include "lab2-api.h"
main (int argc, char *argv[]) {
sem_t nSem, oSem, n2Sem, o2Sem, no2Sem, o3Sem;
char szn,
szo,
szt,
sznSem[10],
szoSem[10],
szn2Sem[10],
szo2Sem[10],
szno2Sem[10],
szo3Sem[10];
int n = 0,
o = 0,
t = 0;
switch (argc) {
case 4:
n = dstrtol(argv[1], NULL, 10);
o = dstrtol(argv[2], NULL, 10);
t = dstrtol(argv[3], NULL, 10);
Printf("N: %d\nO: %d\nT: %d\n", n, o, t);
break;
default:
Printf("Usage: ");
Printf(argv[0]);
Printf("<N_atoms> <O_atoms> <Temp>\n");
exit ( );
}
nSem = sem_create(0);
oSem = sem_create(0);
n2Sem = sem_create(0);
o2Sem = sem_create(0);
no2Sem = sem_create(0);
o3Sem = sem_create(0);
ditoa(t, szt);
ditoa(n, szn);
ditoa(o, szo);
ditoa(nSem, sznSem);
ditoa(oSem, szoSem);
ditoa(n2Sem, szn2Sem);
ditoa(o2Sem, szo2Sem);
ditoa(no2Sem, szno2Sem);
ditoa(o3Sem, szo3Sem);
process_create("n.dlx.obj", szn, sznSem, NULL);
process_create("o.dlx.obj", szo, szoSem, NULL);
process_create("n2.dlx.obj", sznSem, szn2Sem, NULL);
process_create("o2.dlx.obj", szoSem, szo2Sem, NULL);
process_create("o3.dlx.obj", szo2Sem, szo3Sem, szno2Sem, szt, NULL);
process_create("no2.dlx.obj", szn2Sem, szo2Sem, szno2Sem, szt, NULL);
}