Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
758 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C-UNIX] Recuperer le command name a partir du PID

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C-UNIX] Recuperer le command name a partir du PID

n°252255
Gugus2000
Profil : Rien
Posté le 23-11-2002 à 20:08:46  profilanswer
 

Y a t il une fonction qui permettrait de recuperer le nom du programme a partir du PID de celui ci du genre :
 

Code :
  1. void get_pid_name(int PID);


 
voila sinon si ca existe po j ai penser a executer la commande ps
la parser jusk a trouver le PID et ensuite enregistrer le nom du programme dans un char *
 
mais bon c un peut gorrer ya plus simple chuis sur :/


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
mood
Publicité
Posté le 23-11-2002 à 20:08:46  profilanswer
 

n°252269
Gugus2000
Profil : Rien
Posté le 23-11-2002 à 20:38:03  profilanswer
 

bon j crois que c pas possible l autre solution est de mettre un pause qui attend un signal et de mettre un timer sur ce pause.
 
ya une fonction qui est setitimer je pense que ca va m aider


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252307
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 23-11-2002 à 21:14:29  profilanswer
 

Gugus2000 a écrit a écrit :

bon j crois que c pas possible l autre solution est de mettre un pause qui attend un signal et de mettre un timer sur ce pause.
 
ya une fonction qui est setitimer je pense que ca va m aider




 
je vois po le rapport avec ton ta question initiale?
d'ailleurs tu as besoin du nom du programme pour faire quoi?


---------------
du bon usage de rand [C] / [C++]
n°252322
Gugus2000
Profil : Rien
Posté le 23-11-2002 à 21:51:07  profilanswer
 

j ai codé un serveur et un client
 
 
je lance le serveur il me dit son PID
 
le client je le lance de cette facon :
./client [PID DU SERVEUR] "ma phrase"
 
 
je voudrais faire en sorte que si on se trompe sur le PID que le client retourne un message d erreur
 
le mien attend une reponse duserveur qu il n aura jamais si le PID est faux


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252323
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 23-11-2002 à 21:56:14  profilanswer
 

ebn vu que tu travailles sur le meme PC, pourquoi ne pas utilisé un fichier pour echanger ces informations? le serveur y ecrit ou il est et d'autres infos, et les clients analyse ce fichier: ca me aprait le plus simple
 
parce que donner un pid...  :sarcastic:  
 
ou alors mets un timeout ou definit un petit protocole server/client: le server doit repondre au client pour lui confirmer sa conexxion (d'ou ton idée du signal)


---------------
du bon usage de rand [C] / [C++]
n°252330
schnapsman​n
Zaford Beeblefect
Posté le 23-11-2002 à 22:31:32  profilanswer
 

sur solaris il y a une commande pwdx qui prends en paramètre un pid. Elle retourne le path de lancement du prog.
 
Mais rien de POSIX n'existe je pense.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°252456
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 12:29:09  profilanswer
 

Taz@PPC a écrit a écrit :

ebn vu que tu travailles sur le meme PC, pourquoi ne pas utilisé un fichier pour echanger ces informations? le serveur y ecrit ou il est et d'autres infos, et les clients analyse ce fichier: ca me aprait le plus simple
 
parce que donner un pid...  :sarcastic:  
 
ou alors mets un timeout ou definit un petit protocole server/client: le server doit repondre au client pour lui confirmer sa conexxion (d'ou ton idée du signal)




 
comme c trop pas con ta premiere id [:xp1700]


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252535
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 16:48:27  profilanswer
 

le problème d'associer un PID au nom du programme est pas tres utile car si un programme est lancé plusieur sfois (plusieurs processus), on si retrouve plus.
 
faut donc se fier qu'au PID
 
tiens moi au courant de quelle solution tu adoptes  ;)


---------------
du bon usage de rand [C] / [C++]
n°252624
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 20:45:41  profilanswer
 

j ai pas encore gerer ca mais ton idee ma permis de gerer plusieurs client :)
 
 
lorsque je lance un client je lock un fichier je balance mais infos au serveur et je quitte
 
si un autre client est lancé pendant que l autre envois des infos et bien il tourne en boucle jusk a ce qu il puisse a son tour locker le fichier.
 
Ca marche en tous cas :)
 


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252626
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 20:47:03  profilanswer
 

:jap:


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le 24-11-2002 à 20:47:03  profilanswer
 

n°252632
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 20:56:35  profilanswer
 

on nous demande :
   - gestion des erreurs de transmission et reemission
 
 
moi quand mon client envois un char mon serveur lui repond j ai recu qqch tu peux continuer a m envoyer ton signal.
 
 
est ce consideré comme une gestion d erreurs de transmission et reemission ? je pense pas :/
 
 
je comprend pas trop comment faire ca
 
 
 
j vais ptet expliquer le sujet ca aidera pour comprendre ca :
 
un serveur et un client ds deux term different
 
le serveur s execute et affiche son pid
on lance le client de la maniere suivante :
client [PID DU SERVEUR] "une chaine str"
 
La communication entre le client et le serveur doit se faire uniquement par signaux (perso j utilise SIGUSR1 pour le 1 et SIGUSR2 pour le 0).
 
ma methode :  
envoyer le PID du client au serveur
transformer ma chaine en un code binaire
envoyer un bit et attendre un signal du serveur pour qu il me dise j ai bien recu ton bit
renvoyer un autre bit etc ...
Quand il a 8bits afficher le char
une fois que la chaine est fini mon client envois un \n
 
voila


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252633
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 20:59:43  profilanswer
 

pas de pipe? putain c'est vraiment pour faire chier
 
 
perso j utilise SIGUSR1 pour le 1 et SIGUSR2 pour le 0
 
tu peux passer ta chaine à la moulinette d'un cheksum et l'envoyer egalement afin de vérifier l'autenticité des données recues


---------------
du bon usage de rand [C] / [C++]
n°252634
matafan
Posté le 24-11-2002 à 21:01:56  profilanswer
 

Pour avoir le nom d'un process tu peux toujours aller lire les fichiers sous /proc.

n°252635
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 21:03:14  profilanswer
 

Taz@PPC a écrit a écrit :

pas de pipe? putain c'est vraiment pour faire chier
 
 
perso j utilise SIGUSR1 pour le 1 et SIGUSR2 pour le 0
 
tu peux passer ta chaine à la moulinette d'un cheksum et l'envoyer egalement afin de vérifier l'autenticité des données recues




 
 :jap:  
 
ca va rallonger le tps d execution :/
 
la je suis a 1.69s pour 1024chars et faut pas depasser 2s
 [:alph-one]


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252637
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 21:03:55  profilanswer
 

Matafan a écrit a écrit :

Pour avoir le nom d'un process tu peux toujours aller lire les fichiers sous /proc.




 
oué mais ca c en shell moi je cherchais en C-UNIX et puis il fo etre root pour aller la dedant je le suis pas sur la machine :D


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252640
Kristoph
Posté le 24-11-2002 à 21:08:16  profilanswer
 

Sous Linux, tu peux aller voir dans /proc/<pid>/cmdline il me semble. Mais je n'ai aucune idée de ce qu'il faut pour avoir ça ou même si c'est standard :D

n°252641
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 21:10:04  profilanswer
 

Gugus2000 a écrit a écrit :

 
 
 :jap:  
 
ca va rallonger le tps d execution :/
 
la je suis a 1.69s pour 1024chars et faut pas depasser 2s
 [:alph-one]




 
3 fois rien, c'est moins couteux que de confirmer apres chaque bit. jete quand meme un cout d'oeil a crypt.
 
sinon tu peux implémener toi meme un petit controle de parité ou Hamming pour chaque packet de bit émis


---------------
du bon usage de rand [C] / [C++]
n°252643
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 21:11:45  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
3 fois rien, c'est moins couteux que de confirmer apres chaque bit. jete quand meme un cout d'oeil a crypt.
 
sinon tu peux implémener toi meme un petit controle de parité ou Hamming pour chaque packet de bit émis




 
je suis obligé de recoder le machin
mais bon je vaus le faire a l arrache clairement :D


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252645
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 21:13:02  profilanswer
 

Gugus2000 a écrit a écrit :

 
 
je suis obligé de recoder le machin
mais bon je vaus le faire a l arrache clairement :D




 
recoder quoi? ton programme? ca va surtout consister a virer les lignes


---------------
du bon usage de rand [C] / [C++]
n°252651
Gugus2000
Profil : Rien
Posté le 24-11-2002 à 21:18:47  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
recoder quoi? ton programme? ca va surtout consister a virer les lignes




 
bah si je vire la reponse du serveur les signaux vont arriver trop vite ca va toujours etre erronnes.
si je met un usleep(0) bah beaucoup beaucoup trop lent du genre 60s pour 1024 chars  :ouch:  
 
 
du coup je suis obligé de foutre une boucle ds mon programme pour que tous les 8 bits j aille ds une autre fonction qui va recevoir le checksum et le comparer au sien et non pas l afficher :)


---------------
Je décline toute responsabilité potentielle pour le contenu de mes propos et contenu multimedia (images, videos et sons) + miroir magic.
n°252652
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 24-11-2002 à 21:21:07  profilanswer
 

Gugus2000 a écrit a écrit :

 
 
bah si je vire la reponse du serveur les signaux vont arriver trop vite ca va toujours etre erronnes.
si je met un usleep(0) bah beaucoup beaucoup trop lent du genre 60s pour 1024 chars  :ouch:  
 
 
du coup je suis obligé de foutre une boucle ds mon programme pour que tous les 8 bits j aille ds une autre fonction qui va recevoir le checksum et le comparer au sien et non pas l afficher :)




 
 
 
regarde tu coté des signaux temps réel et de sigqueue


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C-UNIX] Recuperer le command name a partir du PID

 

Sujets relatifs
Recuperer une adresse IP[PHP] Récupérer les variables dans une page sur un autre server
Recuperer les champ Input dynamiquement...[PHP] Récuperer les infos d'un serveur irc
Comment récupérer une resource custom associée à un projet VBDifference entre unix et mandrake pour le C ?????
Récupérer le temps en ms, c possible ? -nt[C++Builder] Récupérer un champ VarBinary(128) via un TField
Comment recuperer dans un .txt les adresses de ficiersExecuter un script PHP à partir dun script perl ....
Plus de sujets relatifs à : [C-UNIX] Recuperer le command name a partir du PID


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR