2009-04-16 8 views
1

Est-il possible d'obtenir un pointeur pour traiter le descripteur d'un processus dans un module du noyau? S'il est possible de le faire, comment le faire? J'ai besoin de trouver tous les fichiers ouverts par un processus et leurs valeurs de décalage de chaque descripteur de fichier ....descripteur de processus dans les modules du noyau

Répondre

1

Je l'ai trouvé, je suis le pointeur pour traiter ... la fonction descripteur est déclarée dans linux/sched.h

struct task_struct find_task_by_pid(pid_t pid) .. Je pense que je peux utiliser ce descripteur de processus à suivre au descripteur de fichier et leur compensations ... Merci u all ur soutien

1

Eh bien, je ne sais pas comment obtenir cela à partir d'un module noyau, mais il y a de nombreuses façons de obtenir à partir d'un morceau de code régulier ... Pas particulièrement efficace, c'est. Commençons par la façon dont lsof et d'autres utilitaires similaires le font, et continuez en regardant/proc/$ pid/fd

1

Parcourez le système de fichiers proc à la recherche de processus avec des descripteurs de fichiers ouverts. Cependant, vous ne pouvez pas détecter les décalages dans les handles de fichiers ouverts.

0

Je ne sais pas ce que vous essayez d'atteindre, généralement tout ce que exécute dans le contexte d'un identifiant de processus donné. C'est toujours à votre disposition via le "global" global. Si vous voulez trouver un descripteur de processus arbitraire alors find_task_by_pid est probablement ce que vous voulez . Toutes les informations de processus découlent de task_struct.

Questions connexes