Я недавно встречался с таким вопросом о msgget .
while(1)
{
msqid = msgget(IPC_PRIVATE,IPC_CREAT);
if(msqid<0)
break;
printf("msqid=%d\n",msqid);
}
Вскоре он потребляет все msqid в ядре.
Поскольку msgget являетсяпостоянный, в следующий раз процесс запускается и завершается с ENOSPC без перерыва.
Хотя настройка sysconf позволяет решить проблему.но я должен переконфигурировать снова и снова, если вредоносный код продолжает работать.
Это серьезная утечка, по моему мнению, и заставить другой процесс испытывать недостаток в msqid.
Как может системный администратор избежать этого?