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

C Discussion :

Commande system


Sujet :

C

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut Commande system
    Bonjour,

    Je rencontre un problème pour exécuter la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("AINTX\\ps.exe > liste_ps.txt")
    Le fichier liste_ps.txt est vide.
    Pourtant la commande s'exécute sans pb en ligne de commande.

    Avez-vous une idée ? Merci.

  2. #2
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut Re: Commande system
    Citation Envoyé par licorne
    Bonjour,

    Je rencontre un problème pour exécuter la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system("AINTX\\ps.exe > liste_ps.txt")
    Le fichier liste_ps.txt est vide.
    Pourtant la commande s'exécute sans pb en ligne de commande.

    Avez-vous une idée ? Merci.
    Es-tu sûr que cette commande affiche sur la sortie standard et non la sortie erreur?

    Je ne pense pas que tu peux rediriger la sortie erreur sous windows (quoique) mais sous linux, il faut utiliser 2> à la place de >.

    [EDIT]
    D'ailleurs où est le rapport avec le langage C?
    [/EDIT]

    Jc

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    En fait ma ligne de code entière est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if (system("AINTX\\ps.exe") == 0 && system("AINTX\\ps.exe > liste_ps.txt") == 0)
    Lors de l'exécution en lançant mon prog en ligne de commande il passe bien sur ce test, exécute "system("AINTX\\ps.exe") " et liste les process à l'écran. Puis crée le fichier liste_ps.txt avec "system("AINTX\\ps.exe > liste_ps.txt")" mais vide.
    La seule possibilité que j'ai trouvé pour tester une erreur éventuelle est le code retour de "system == 0".

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Voici l'explication du pb :
    Après la commande qui liste les process vers un fichier txt, j'ouvre le fichier txt en question.
    Il faut juste insérer une temporisation après la création du fichier txt.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	if (system("AINTX\\ps.exe") == 0 && system("AINTX\\ps.exe > liste_ps.txt") == 0)
    	{
    		sleep(5000);
     
    		if ((fichierps = fopen("liste_ps.txt","wb")) == NULL) 
    		{
    			fputs("\nErreur d'ouverture du fichier liste_ps.txt\r",cr);
    			return 1;
    		}
    Et maintenant ça fonctionne.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Une autre question à ce sujet : comment savoir si lexécution d'une commande est terminée ?

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par licorne
    Une autre question à ce sujet : comment savoir si lexécution d'une commande est terminée ?
    A ma connaissance, c'est automatique. Avec system(), le processus appelant est suspendu jusqu'à execution du processus appelé. Je suis un pei étonné par l'ajout du 'sleep()'...
    Pas de Wi-Fi à la maison : CPL

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par licorne
    Une autre question à ce sujet : comment savoir si lexécution d'une commande est terminée ?
    C'est automatique. avec system(), le processus appelant est suspendu jusqu'à execution du processus appelé.
    Tu veux dire que ma commande "system("AINTX\\ps.exe > liste_ps.txt")"
    est réellement terminée quand system rend la main.

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par licorne
    Tu veux dire que ma commande "system("AINTX\\ps.exe > liste_ps.txt")"
    est réellement terminée quand system rend la main.
    Oui, mais j'ai un doute. J'étudie la norme...
    Citation Envoyé par N1124
    7.20.4.6 The system function
    Synopsis
    1 #include <stdlib.h>
    int system(const char *string);
    Description
    2 If string is a null pointer, the system function determines whether the host
    environment has a command processor. If string is not a null pointer, the system
    function passes the string pointed to by string to that command processor to be
    executed in a manner which the implementation shall document; this might then cause the
    program calling system to behave in a non-conforming manner or to terminate.
    Returns
    3 If the argument is a null pointer, the system function returns nonzero only if a
    command processor is available. If the argument is not a null pointer, and the system
    function does return, it returns an implementation-defined value.
    Effectivement, ce n'est pas précisé. Ca doit dépendre de l'implémentation. Il faut que tu regardes la définition de system() sur ta machine (man 3 system)
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Alors là j'avoue que je ne sais pas comment faire pour regarder la définition de system(). Peux-tu m'en dire plus ?

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par licorne
    Alors là j'avoue que je ne sais pas comment faire pour regarder la définition de system(). Peux-tu m'en dire plus ?
    Quel est ton système ?
    Pas de Wi-Fi à la maison : CPL

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Windows Server 2003 Standard Edition.

  12. #12
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par licorne
    Windows Server 2003 Standard Edition.
    MSDN ???
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  13. #13
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par licorne
    Windows Server 2003 Standard Edition.
    Et ton compilateur ?
    Pas de Wi-Fi à la maison : CPL

  14. #14
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Si tu utilise VC

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_crt_system.2c_._wsystem.asp
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par licorne
    Windows Server 2003 Standard Edition.
    Et ton compilateur ?
    MingW.

  16. #16
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par licorne
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par licorne
    Windows Server 2003 Standard Edition.
    Et ton compilateur ?
    MingW.
    Là, ça pose un véritable problème. Il s'agit maintenant de savoir si mingw utilise ses propres fonctions ou celles de windows sur ce système.

    Peut être faudrait-il consulter le forum C de mingw...

    http://sourceforge.net/forum/forum.php?forum_id=286529
    Pas de Wi-Fi à la maison : CPL

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 401
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par licorne
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par licorne
    Windows Server 2003 Standard Edition.
    Et ton compilateur ?
    MingW.
    Là, ça pose un véritable problème. Il s'agit maintenant de savoir si mingw utilise ses propres fonctions ou celles de windows sur ce système.

    Peut être faudrait-il consulter le forum C de mingw...

    http://sourceforge.net/forum/forum.php?forum_id=286529
    Merci pour l'info et bon après-midi.

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

Discussions similaires

  1. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  2. [le retour] commande systeme
    Par ronan99999 dans le forum Windows
    Réponses: 2
    Dernier message: 29/07/2004, 10h11
  3. [langage] Probleme avec commande system et code
    Par Ludo167 dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2004, 12h01
  4. Prblème avec la commande system
    Par AnneOlga dans le forum C++Builder
    Réponses: 8
    Dernier message: 04/03/2004, 16h05
  5. La commande systeme
    Par sunshine33 dans le forum MFC
    Réponses: 11
    Dernier message: 13/01/2004, 11h34

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