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

Linux Discussion :

Linux get pid from name langage C


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut Linux get pid from name langage C
    Bonjour à tous,

    voilà je souhaiterais à partir du nom d'un processus récupérer son pid mais sans passer par la fonction system("commandes shell").

    Je suis preneur de toutes pistes que vous pourriez me fournir (mes recherches m'ont seulement conduit au mieux à du code C qui ne marche pas sous linux mais sous freebsd : http://programming-in-linux.blogspot...name-in-c.html)!

    merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ElFenec Voir le message
    (mes recherches m'ont seulement conduit au mieux à du code C qui ne marche pas sous linux mais sous freebsd : http://programming-in-linux.blogspot...name-in-c.html)!
    Intéressant ce lien. Le moteur de la fonction qui récupère le pid c'est sysctl() donc si ça ne marche pas sous Linux, c'est peut-être simplement dû à une particularité de cette fonction qui semble très proche du noyau.

    D'un autre coté, sous Linux, les processus sont tous dans "/proc". Donc tu peux essayer un simple opendir()+readdir() ce qui te donnera la liste des processus actifs et ainsi chercher celui qui correspond au nom ciblé...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci pour ta réponse mais je n'ai pas réussi à faire ce que je voulais . Du coup j'ai opté pour un popen avec une longue commande bash avec des awk et des sed à gogo afin de récupérer le pid que je souhaitais.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Si tu peux etre dependant de ton OS, tu peux parcourir le repertoire /proc/, dans lequel tu trouveras un repertoire par pid.

    Ensuite, dans ce repertoire, tu ouvres le bon fichier, celui qui te donnera le nom du process. Si c'est celui que tu cherches, alors tu as son pid
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre éprouvé Avatar de exodev
    Inscrit en
    Septembre 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2009
    Messages : 201
    Par défaut
    Sinon la commande pidof peut aussi permettre de récupérer le pid si tu as le nom

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps -ef | grep nom | awk ...
    je ne suis pas fort avec awk, mais tu dois pouvoir trouver la réponse ici facilement..

Discussions similaires

  1. Get Results From Google Image
    Par scartik dans le forum C#
    Réponses: 15
    Dernier message: 04/07/2011, 09h41
  2. Get field by name
    Par ebalexandr dans le forum Django
    Réponses: 5
    Dernier message: 13/06/2011, 14h16
  3. Get text from application window or other
    Par Ludo_360 dans le forum Delphi
    Réponses: 3
    Dernier message: 24/05/2007, 09h47
  4. [NetBeans 5][Linux] F1 != Aide sur le langage
    Par Giovanny Temgoua dans le forum NetBeans
    Réponses: 9
    Dernier message: 14/03/2007, 18h22

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