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

Threads & Processus C++ Discussion :

la fonction system de stdlib


Sujet :

Threads & Processus C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 241
    Par défaut la fonction system de stdlib
    Bonjour,

    J 'ai ce petit bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    system("(TaskList | findstr /c:%argv[%i%]%) > nul" );
    system("If %errorlevel%== 0 taskkill /f /im %argv[%i%]% > nul");
    dans mon fichier cpp mais j ai quelque soucis :


    1/ je n'arrive pas a acceder a ma variable argv[i] en faisant ceci %argv[%i%]%, meme quand j utilise une variable simbple genre var, je n'arrive pas a acceder au contenu via %var%
    2/ l'ecran dos apparait bien que j'utilise nul
    3/j'ai l'impression que mon test sur errorlevel, n 'est pas egalement pris en compte

    comment je peux les resoudre ?

    Merci

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Quand tu fais un appel un system, il n'y aucune "évaluation" de ta chaîne.
    Pour faire ce que tu veux, il faut construire une chaîne de caractères avec std::ostringstream et passer la chaîne construite à system.

    Pour le détail des commandes, cf la FAQ.

    Note que 2 appels à system vont lancer 2 consoles différentes qui n'auront rien en commun (même pas les variables locales au shell) ce qui peut t'empêcher de faire ce que tu veux (comme je n'y connait rien à windows, je ne détaille pas plus)
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    +1

    en fonction de ce que tu veut faire, regarde popen et consort

Discussions similaires

  1. fonction system et probleme d'arobase
    Par yerome dans le forum Langage
    Réponses: 3
    Dernier message: 08/07/2005, 16h53
  2. Réponses: 10
    Dernier message: 08/02/2005, 16h04
  3. Réponses: 1
    Dernier message: 20/08/2004, 09h16
  4. Réponses: 2
    Dernier message: 30/03/2004, 11h31
  5. Réponses: 13
    Dernier message: 20/03/2003, 08h11

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