私はセマフォを作成するプログラムを持っています。私は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;
}
}
をerrnoにエラーが出ますか?
'std :: cout'がinteferesを' errno'で使うのは不安ですが、 'semtctl'を呼び出した直後に' errno'の値を保存して正しい 'errno'値。また、 'memset()'はあまり正しくありません: 'memset(array、0、100 * sizeof(ushort));または' ushort配列[100] = {0}; '。 – hmjd