Численный результат вне диапазона - PullRequest
0 голосов
/ 21 марта 2012

У меня есть программа, которая создает семафор. Но когда я пытаюсь использовать SETALL, я получаю сообщение об ошибке в виде ошибки

Числовой результат вне диапазона

if((temp_semid = semget(IPC_PRIVATE, 250, 0666 | IPC_CREAT)) != -1)
{    
  semun arg; 
  ushort array[100];
  memset(array,0, 100);
  arg.array = array;
  if(semctl(temp_semid, 0, SETALL, arg) == -1){ 
   std::cout << " failed to setall semaphore" << std::endl;
   std::cout << strerror(errno) << std::endl;
    break;
  }    
}

Что не так?

1 Ответ

0 голосов
/ 21 марта 2012

Это сработало.

if((temp_semid = semget(IPC_PRIVATE, 250, 0666 | IPC_CREAT)) != -1)
{    
  semun arg; 
  ushort array[100] = { 0 };
  arg.array = array;
  if(semctl(temp_semid, 0, SETALL, arg) == -1){ 
   std::cout << " failed to setall semaphore" << std::endl;
   std::cout << strerror(errno) << std::endl;
    break;
  }    
}

Я неправильно использовал memset.спасибо hmjd за то, что указал на это.

...