IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Nom d'un process!!!


Sujet :

C

  1. #1
    Futur Membre du Club
    Inscrit en
    août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : août 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Nom d'un process!!!
    Bon alors je continue dans mes process.
    Vous allez dire que je suis un manche mais j'ai beau fouiller la doc je ne trouve rien me permettant à partir du PID d'un process d'obtenir le nom de ce process. Hors sans le nom je ne peux rien faire. Si quelqu'un sait qu'il parle maintenant ou bien se taise à jamais!!!
    Merci d'avance
    La vitesse de la lumière étant plus grande que celle du son, beaucoup de personnes semblent brillantes jusqu'à ce qu'elle ouvrent leur gueule.

  2. #2
    Membre habitué Avatar de Metal Tom
    Profil pro
    Inscrit en
    avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : avril 2003
    Messages : 119
    Points : 129
    Points
    129
    Par défaut
    Y'a une méthode un peu barbare si t'es sous linux ou unix : tu fais un ps -l en redirigeant la sortie vers un pichier. Ensuite tu parses ton fichier pour récupérer le nom du process qui est associé au pid.
    Mais il doit y avoir un meilleur moyen. T'as essayé google ?
    Tom

  3. #3
    Futur Membre du Club
    Inscrit en
    août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : août 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ben justement je suis obligé de me contenter d'une pauvre vieille bécane pourrie sous Win NT4.0. J'utilise Visual C++ 6.0, autrement un truc dépassé aussi.
    J'ai fouillé la doc dans tous les sens et lancé des recherches sur Google, mais sans résultats. Je suis capable de récupérer l'occupation CPU du process mais le nom ils n'ont apparement pas jugés utile de le rendre disponible.
    La vitesse de la lumière étant plus grande que celle du son, beaucoup de personnes semblent brillantes jusqu'à ce qu'elle ouvrent leur gueule.

  4. #4
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 131
    Points : 160
    Points
    160
    Par défaut
    si t'as le msdn cherche tlist.c, ça fait ce que tu cherche (y compris pour nt 4 qui ne supporte pas les fonctions snap-shot (Process32First ...)

  5. #5
    Membre émérite

    Homme Profil pro
    Inscrit en
    juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : juillet 2003
    Messages : 2 075
    Points : 2 796
    Points
    2 796
    Par défaut
    Bonjour
    C quoi une fonction "snapshot"?
    Merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2003
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    J'ai une solution plus simple pour toi.
    Tout d'abord sous Linux il faut savoir qu'il y a un répertoire proc placé dans /.
    Ce répertoire contient toutes les informations concernant tous les processus qui sont en trainde tourner sur la machine.

    Donc imaginons que le PID de ton process est 314 alors il te suffit avec chdir() de te placer dans /proc/314/.
    Ensuite tu ouvre le fichier status qui se trouve dans ce répertoire.

    Et pour finir tu fais un fscanf() sur le flux obtenu sur le fichier status.
    En effet le mot que tu obtiendra est le nom du process.

    Donc je récapitule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FILE *fp; 
    char line[20]; 
     
    fp = fopen("/proc/314/status", "r"); 
     
    fscanf(fp, "%s", line);
    Là j'utilise fscanf mais je te conseille plutôt de faire un fgets suivi d'un sscanf.

    Voilà ma soluce @++.

  7. #7
    fd
    fd est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    mai 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2002
    Messages : 131
    Points : 160
    Points
    160
    Par défaut
    tchingoo : comme il te l'as dit il est sous nt 4

    les fonctions "snap-shot" qui se trouvaient ds toolhelp sous win 9x et qui sont natives à partir de 2000 sont les API :
    CreateToolhelp32Snapshot,
    Process32First,
    Process32Next
    (il y en a d'autres)

    le "snap-shop" consiste à (en gros) prendre une image des process puis à les parcourir

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    août 2003
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2003
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Ah oui dsl j'avais pas capté.

  9. #9
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    juin 2003
    Messages
    5 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : juin 2003
    Messages : 5 732
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    3
    Par défaut
    Pas besoin de ça.
    Un PID sous Win, ça sert pas à grand chose. On manipule plutôt un handle de process.
    T'as la fonction PrintProcessNameAndID ici qui te montres comment récupérer le nom du process à partir de son PID :
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/enumerating_all_processes.asp

  10. #10
    Futur Membre du Club
    Inscrit en
    août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : août 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ben là tu vois, c'est juste ce qu'il me faut. Sauf que je regarde dans mes MSDN et la fonction ne s'y trouve pas!!!
    Eh merde
    Bon on va voir comment on peut faire, Merci!!! 8)
    Et désolé mais je ne vois toujours pas de bouton ou de balise pour marquer que le problème est résolu.
    La vitesse de la lumière étant plus grande que celle du son, beaucoup de personnes semblent brillantes jusqu'à ce qu'elle ouvrent leur gueule.

  11. #11
    Futur Membre du Club
    Inscrit en
    août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : août 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Il m'a fallu un peu de temps pour comprendre. C'est un exemple en fait. Je pouvais toujours chercher. En tout cas merci, maintenant j'ai tout ce qu'il me faut. Enfin.
    Merci HW, ton intervention fut salutaire. Merci à tous. 8)
    La vitesse de la lumière étant plus grande que celle du son, beaucoup de personnes semblent brillantes jusqu'à ce qu'elle ouvrent leur gueule.

  12. #12
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    juin 2003
    Messages
    5 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : juin 2003
    Messages : 5 732
    Points : 10 546
    Points
    10 546
    Billets dans le blog
    3
    Par défaut
    Il m'a fallu un peu de temps pour comprendre. C'est un exemple en fait.

  13. #13
    Futur Membre du Club
    Inscrit en
    août 2003
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : août 2003
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ouais, y a de quoi!!! Un peu à la masse moi!!! 8) 8)
    La vitesse de la lumière étant plus grande que celle du son, beaucoup de personnes semblent brillantes jusqu'à ce qu'elle ouvrent leur gueule.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/03/2013, 15h45
  2. Modifier le nom de mon process
    Par The eye dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/02/2007, 18h13
  3. [C#]recuperer numero process ou nom a partir du handle d'une form
    Par aymane_farissi dans le forum Windows Forms
    Réponses: 1
    Dernier message: 17/08/2006, 20h10
  4. Récupérer le nom du process
    Par soulhouf dans le forum Administration système
    Réponses: 20
    Dernier message: 14/04/2006, 11h20
  5. Comment netstat retrouve le nom d'un process ?
    Par seal3 dans le forum Linux
    Réponses: 5
    Dernier message: 17/11/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo