我有一个大多数都能正常工作的应用程序,但是有一个条件,其中对:: popen()的调用将errno设置为ENOMEM时出错。::popen()的手册页指向您:: fork()的页面,该页面本身列出了ENOMEM以及在Linux上的简短注释:
The fork() function may fail if:
ENOMEM Insufficient storage space is available.
我想知道我是否真的用完了内存,或者其他一些资源,例如文件描述符? fork()是否可以为ENOMEM提供除耗尽系统上实际内存以外的其他功能?这是Centos4。
最佳答案
我已经确认,ENOMEM是由于在重复:: popen()之后不调用:: pclose()并最终用尽了文件描述符而导致的。