Причины для ENOMEM от :: popen () - PullRequest
2 голосов
/ 21 июня 2011

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

   The fork() function may fail if:

   ENOMEM Insufficient storage space is available.

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

1 Ответ

1 голос
/ 21 июня 2011

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

...