2

我有一个大多数情况下都可以工作的应用程序,但是有一种情况,其中对 ::popen() 的调用出现错误,并且 errno 设置为 ENOMEM。::popen() 的手册页指的是 ::fork() 的页面,该页面本身列出了 ENOMEM,并附有 Linux 上的简短评论:

   The fork() function may fail if:

   ENOMEM Insufficient storage space is available.

我想知道我是否真的内存不足,或者可能是文件描述符等其他资源?除了用完系统上的实际内存之外,fork() 可以给 ENOMEM 吗?这是Centos4。

4

1 回答 1

1

我已经确认 ENOMEM 是由于在重复 ::popen() 之后没有调用 ::pclose() 并最终用完文件描述符造成的。

于 2011-06-21T16:17:07.520 回答