System( une_commande &);

Je suis une libellule ! -  
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour au bleu pays et à ses habitants. :)

Je suis confronté a un petit problème de tâche sous Linux.

En effet je programme en C un petit bout de code qui doit a un moment donné lancer un programme tout en continuant a tourner.

Ce petit programme est mplayer ("mplayer -msglevel all=-1 "addresse d'un flux" ) et pour le moment (moment très bof) je fais comme ceci :

system ( mplayer_blabla & );

Ce qui marche bien :
-Effectivement mplayer_blabla se lance en tâche de fond, et mon programme continu a tourner.

Ce que je ne sais pas faire :
Arrêter mplayer_blabla.
Deplus la commande 'jobs' ne me renvoie rien du tout.

Pour le moment mes tests ne peuvent que se terminer a coup de KILLALL mais on éteint pas une marguerite avec un allume cigare.

Voilà, je ne sais pas trop comment m'en tirer. Peut-être existe-t'il une autre solution que de passer par la fonction system(); , ou vaut'il mieux faire appel directement a Gstreamer.

Je prend tout !
Merci d'avance
bzzzzZZZZzz..
Configuration: Linux
Firefox 1.5.0.9

5 réponses

  1. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    Salut.
    regarde du coté de exec ou plutôt de "spawn"
    https://docs.microsoft.com/en-us/
    ça fonctionne sous windows et aussi sur linux.
    Sinon, tu peux passer par un thread contenant un exec, et lorsque tu veux tuer le processus, tu tue le thread (sans garantie)
    0
  2. Je suis une libellule !
     
    Merci :)

    Je suis allé y faire un tour et oulà ! Après le dodo ce sera mieux je pense .
    Je vous tiendrai au courant de la chose. Voilà .
    0
  3. Je suis une libellule :)
     
    "Sinon, tu peux passer par un thread contenant un exec, et lorsque tu veux tuer le processus, tu tue le thread (sans garantie) "

    Le problème c'est que pour tuer le thread je n'ai vu que deux solutions :

    1 : Le thread se suicide avec pthread_exit .

    2 : Un aute thread (ou le père) le tue avec pthread_setcancelstate .

    Mais dans les deux cas le thread qui va être tué teste les conditions d'appel a sa destruction.
    Hors si je lance un exec dans le thread, celui-ci sera bloqué tant que l'exec ne sera pas terminé.

    Donc je vois deux solutions : (http://pficheux.free.fr/articles/lmf/threads/

    1 : Je trouve le moyen de parler cet exec pour lui fournir en paramètre ce qu'il a l'habitude de recevoir.

    2 : J' RTFM Gstreamer pour implémenter dans mon thread un lecteur made in moi ; solution alternative élégante certes, mais de mon niveau ? Je ne sais pas.

    Voili voilouche . COIN!
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 331
     
    OK.
    qu'est-ce qui n'allai pas avec les Spawn? ça me semblait quand même la solution la plus simple.
    0