#include "campo.h" main(int argc, char **argv) { int semaforo; int mutex; int coda; int numgiocatori; char arg_gioc[3]; int shm_id; matrice* campo; if (argc > 1) { if (atoi(argv[1]) == 0) { delsem(creasem(CHIAVE,1)); delsem(creasem(KEYMTX,1)); delshm(shm_id = creashm(KEYSHM, sizeof(matrice))); delcoda(creacoda(KEYCODA)); } else if (atoi(argv[1]) == 1) { if (((semaforo=creasem(CHIAVE,1)) != -1)&& ((mutex=creasem(KEYMTX,1)) != -1)&& ((coda=creacoda(KEYCODA))!= -1)) { initsem(semaforo,2); initsem(mutex,1); printf("\n Quanti giocatori? "); scanf("%s",arg_gioc); if ((shm_id = creashm(KEYSHM, sizeof(matrice))) != -1) if ((campo = (matrice *)attachshm(shm_id)) != (matrice *) -1) { inizializzacampo(campo,atoi(arg_gioc)); stampacampo(campo,atoi(arg_gioc)); deattachshm(campo); } } if (execl("2ngiocatori","2ngiocatori",arg_gioc,NULL) == -1) printf("\n Errore lancio programma 2ngiocatori\n"); } else printf("\n\nParametro errato, deve essere 0 o 1\n"); } else printf("\n\nManca il parametro (0 oppure 1)\n"); }