mp3moto Опубликовано 14 мая, 2007 Жалоба Опубликовано 14 мая, 2007 Привожу кусок кода: int i, shmId1, semId1; unsigned short int ray[2] = {0,0}; union semun { int val; struct semid_ds*buf; unsigned short int *array; struct seminfo*_buf; }ar; shmId1 = shmget(11,200,IPC_CREAT|0666); if(shmId1 == -1) printf("Creator: Shared memory 1 not created\n"); else printf("Creator: Shared memory 1 created\n"); semId1 = semget(98,1,IPC_CREAT|0666); if(semId1 == -1) printf("Creator: Semafors not created\n"); else printf("Creator: Semafors created\n"); ar.array = ray; i = semctl(semId1,1,SETALL,ar.array); if(i == -1) { printf("Creator: Semafors not installed!\n"); exit(-1); } else printf("Creator: Semafors installed in BLOCK option\n"); printf("%d \n",semctl(semId1,0,GETVAL,0)); printf("%d \n",semctl(semId1,1,GETVAL,0)); } //------------------------------------------------------- В конце программы я запрашиваю значения каждого семафора в наборе и программа выводит 0 и -1. Почему так? Ведь должно быть 0 и 0. Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.