Stocker PID d'un processus / -- C --

Résolu/Fermé
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 - 4 févr. 2010 à 15:07
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 - 4 févr. 2010 à 15:26
Bonjour à tous

je programme en C et j'ai une petite question:

j'aimerai savoir comment faire pour récupérer le PID d'un processus que l'on vient juste de lancer.
J'aimerai stocker ce PID dans un fichier texte par exemple.

Bien sûr je peux récupérer manuellement le PID par un ps -e lié d'un grep mais j'aimerai automatiser cette tâche pour pouvoir envoyer un signal au processus juste après son lancement.

merci d'avance pour vos réponses.

3 réponses

InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
4 févr. 2010 à 15:20
j'avais pensé à faire cela:

int main()
{
int test = system("ps -C programme -o pid");

printf("pid : %d \n", test);

return 0;
}

mais cela m'affiche:
8303
pid : 0

donc le pid stocké dans test n'est pas 8303 alors que c'est ce que renvoie la commande "ps -C programme -o pid"
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
4 févr. 2010 à 15:23
ah oui, normal, c'est la fonction system qui renvoie 0 pour dire que cela s'est bien passé.

mais alors comment stocker le résultat de la commande?
hum peut être si je met le résultat dans un fichier... j'essaye ça :p
0
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
4 févr. 2010 à 15:26
oui c'est ça =)

j'ai rajouté ça à ma commande : > test2.txt pour mettre le résultat dans un fichier
ce qui donne:
int main()
{
int test = system("ps -C programme -o pid > test2.txt");

printf("pid : %d \n", test);

return 0;
}

ainsi je peux travailler directement sur le fichier qui contient mon PID ^^
0