[C++] application lancée ?

Résolu/Fermé
Cedric - 13 mai 2008 à 10:00
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 13 mai 2008 à 16:52
Bonjour à toutes et a tous,
Je me permet de vous solliciter suite à un petit probleme. J'aimerais creer un petit programme en C++ me permettant de verifier si une application X est lancée. Le probleme est que je n'ai trouvé aucune commande en C++ pour le faire ! (je précise que je suis sous linux)
N'ayant trouvé aucune réponse répondant à mon probleme, je me permet de faire appel à votre génie :) !

exemple pour illustrer mes propos :

Si (application X lancée)
{
//instructions
}
Sinon
{
//Instructions
}


Merci d'avance pour vos réponses !
A voir également:

2 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 mai 2008 à 16:20
Salut.
il me semble qu'il n'y a aucune fonction C standard à ce sujet, car très peu portable (la manière de faire dépend fortement de l'OS). En revanche, tu as de la chance de faire ça sous Linux. Dans le répertoire /proc, il y a plein de fichiers qui donnent des informations diverses et varier sur le les processus en cour, l'utilisation de la RAM du CPU etc.
Donc, tu ouvre le bon fichier et tu cherche ton application X.
0
D'accord, je vais fuiner un peu la dedans alors .
Sinon je pense passer par un script shell....

Merci de m'avoir répondu :)
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 mai 2008 à 16:52
une piste de recherche, le man de ps
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man1/ps.1.html
si je comprends bien, chaque dossier de /proc ayant pour nom un numéro correspond à un PID. dans chaque dossier il y a plusieurs fichiers dont un qui contient le ligne de commande et donc l'application.
ceci est au final assez complexe à faire.
Tu peux aussi faire un mixe entre shell et C++ grace à la commande system().
exmple qui ne fonctionne pas :
if( system("") ) ...
ne fonctionne pas car APPLIX aparai dans ps du fait du grep, mais il y a une réponse à ce problème sur ce forum (que j'ai oublié)
0