J'ai une application qui fonctionne principalement, mais j'ai une condition dans laquelle l'appel à :: popen() reçoit une erreur avec errno défini sur ENOMEM. La page de manuel pour :: popen() vous renvoie à la page pour :: fork() qui s'énumère ENOMEM avec ce bref commentaire sur Linux:Les causes pour ENOMEM de :: popen()
The fork() function may fail if:
ENOMEM Insufficient storage space is available.
Je me demande si je suis vraiment à court de mémoire, ou peut-être une autre ressource comme des descripteurs de fichiers? Est-ce que fork() peut donner à ENOMEM autre chose que de manquer de mémoire sur votre système? C'est Centos4.
Er? Où le tuyau (2) me renvoie-t-il à la fourche (2)? Et pourquoi les erreurs fork() seraient-elles pertinentes pour pipe()? – bdonlan
Oups, merci d'avoir attrapé ça, c'est popen, pas de pipe. – WilliamKF
Que dit ['strace (1)'] (http://linux.die.net/man/1/strace)? 'popen (3)' appelle 'pipe (2)' et 'fork (2)' en interne; quel appel renvoie "ENOMEM", "pipe" ou "fork"? –