私はほとんど動作するアプリケーションを持っていますが、::popen() の呼び出しでエラーが発生し、errno が ENOMEM に設定されているという状況が 1 つあります。::popen() の man ページでは、::fork() のページを参照してください。このページには、Linux に関する次の短いコメントが付いた ENOMEM がリストされています。
The fork() function may fail if:
ENOMEM Insufficient storage space is available.
本当にメモリが不足しているのか、それともファイル記述子のような他のリソースが不足しているのか疑問に思っています。fork() は、システムの実際のメモリ不足以外の理由で ENOMEM を与えることができますか? Centos4です。