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

Python Discussion :

probleme avec os.execv [Fait]


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Par défaut probleme avec os.execv
    bonjour, j'ai un programme qui doit lancer un lecteur multimedia (media player classic) avec en argument le fichier a lire.

    tout marche a merveille mais lorsque media player classic se lance, mon programme quitte. Y a t'il un moyen pour qu'il ne quitte pas?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Par défaut
    C'est normal que ton programme quitte. En fait tout le code qui se trouve après ton execv n'est pas executé.

    Ce qui se passe c'est que lorsque tu va lancer ton lecteur, celui-ci va prendre la main sur le processus. Il faut donc avant de le lancer dupliquer ton processus (fork) pour que par exemple ton programme continue de tourner sur le processus père et que le lecteur tourne sur le fils.

    OS Functions

    execv(path, args)
    Execute an executable path with arguments, replacing current process.

    path: path of executable file
    args: tuple or list of strings
    Tout ceci est donc une question de processus.
    Faut savoir maintenant si tu ty connais ou pas, il faudra alors que tu te renseignes sur le sujet ...

  3. #3
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Par défaut
    tu veux dire avec les threads?

    j'ai essayé de faire ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    t = threading.Thread(target = os.execv, args = ("C:\\*******\\mplayerc_xp_fr.exe",("mplayerc_xp_fr.exe",chemin)))
                t.start()
    mais j'obtient le même résultat.....

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 119
    Par défaut
    Je ne connais pas bien les threads mais d'après ce que j'ai compris ça permet de lancer 2 choses en même temps ce qui pourrait peut-être aller dans ton cas (mais comme je viens de le dire, je m'y connais pas assez pour t'aider sur ça)

    Peut-être que les threads permettent de jouer avec les processus d'une façon plus simple (encore une fois je m'avance un peu sans savoir ...).
    Moi j'ai déjà travaillé sur les processus avec des scripts linux mais le principe est le même puisque le module os de Python semble posséder les mêmes fonctions (renseigne toi sur la fonction fork qui permet de dupliquer le processus)

    A toi de voir quelle est la bonne solution.

    PS: Pour ce qui est des threads il y a de la doc dans la FAQ.

  5. #5
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    si ton fichier est un .exe, regarde du côté de os.spawnl (une petite recherche dans le forum et tu trouveras pas mal de truc)

  6. #6
    Membre averti
    Inscrit en
    Novembre 2004
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 23
    Par défaut
    c'a y est j'ai trouvé, la fonction os.spawnv correspond a ce que je recherche , c'est une combinaison de fork et execv.

    merci beaucoup!!

    => FAQ: http://python.developpez.com/faq/?pa...GenExecuteFile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Creation d'un shell probleme avec execve
    Par Mouch2 dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2011, 17h37
  2. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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