Похоже, у вас уже есть ответ - откройте / proc / sys / kernel / sem и вызовите atoi () для первого прочитанного вами числа. Иногда разбор файловой системы / proc является лучшим решением проблемы Linux.
Однако, я grep'd для 250 в / usr / include / linux. Похоже, что #define вы ищете жизни в /usr/include/linux/sem.h:
#define SEMMSL 250
Итак, предполагая, что установлены заголовки Linux, вы должны иметь возможность #include linux / sem.h и получить доступ к этому определению SEMMSL.
Компромисс здесь в том, что использование #define жестко закодирует SEMMSL в ваш двоичный файл. Если вам случится перенести двоичный файл на другой компьютер с меньшим номером, я вижу, что это вызывает проблему. FWIW, я только что проверил на машинах x86_32, x86_64 и PowerPC Linux, на которых я работаю (все последние дистрибутивы Ubuntu), и все они сообщают о 250. Однако анализ файловой системы / proc дает вам текущий лимит для работающего ядра, который поражает я как лучшее решение.