J'ai un processus "x" qui utilise la fonction C "system" pour démarrer le démon ntpd. J'ai observé que ntpd sont passés les descripteurs de fichier ouverts de "x". ntpd conserve les descripteurs de fichier même après la suppression du fichier original. par exemple: Certains fichiers journaux utilisés par "x" sont supprimés après un certain temps, mais "ntpd" a un handle de fichier ouvert pour ces fichiers supprimés. Cela va-t-il causer un problème?Comment trouver tous les gestionnaires de fichiers par un processus par programme?
J'ai également pensé à définir un indicateur "FD_CLOEXEC" pour tous les descripteurs de fichiers avant d'appeler la fonction "système". Mais comme nous fonctionnons comme une bibliothèque d'extension au troisième processus "x" ("x" charge notre bibliothèque en fonction de certaines conditions), il n'y a pas de moyen facile de connaître tous les descripteurs de fichiers ouverts. Une façon est de lire/proc // fd et de définir "FD_CLOEXEC" pour chaque handle de fichier et de le réinitialiser après le retour de la fonction "system". J'utilise Linux 2.6.16. Existe-t-il un autre moyen facile de trouver tous les gestionnaires de fichiers?
Merci,
Voir aussi http://stackoverflow.com/questions/899038/getting-the-highest-allocated-file-descriptor – mark4o