Причины для ENOMEM от::popen()

У меня есть приложение, которое в основном работает, но у меня есть одно условие, при котором вызов to:popen() получает ошибку с errno, установленным в ENOMEM. Страница man для::popen() ссылается на страницу для::fork(), которая сама перечисляет ENOMEM с этим кратким комментарием по Linux:

   The fork() function may fail if:

   ENOMEM Insufficient storage space is available.

Мне интересно, действительно ли мне не хватает памяти, или, возможно, какой-то другой ресурс, например файловые дескрипторы? Может ли fork () дать ENOMEM что-то кроме исчерпания фактической памяти в вашей системе? Это Centos4.

1 ответ

Решение

Я подтвердил, что ENOMEM возник из-за того, что не вызывал::pclose() после повторного::popen() и в конечном итоге исчерпал файловые дескрипторы.

Другие вопросы по тегам