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

Fortran Discussion :

Récupérer le résultat d'une commande UNIX


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Récupérer le résultat d'une commande UNIX
    Bonjour,

    dans le cadre de ma thèse, je développe actuellement un code de calcul en fortran 90.
    Je lis un fichier de données en entrée. Afin de vérifier la validité de ce fichier, j'aimerais faire des manipulations avec des commandes shell (via un call system('blabla')) et récupérer le résultat de cette commande.

    Typiquement, j'aimerai compter le nombre de lignes dans mon fichier d'entrée pour vérifier qu'il est bon. Donc je fait un call system('wc -l fichier.in'), mais je ne sais pas s'il est possible de récupérer le résultat dans le code fortran.

    Est-ce possible ? Si oui comment ?

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    Le plus simple est de rediriger la sortie vers un fichier et lire ce fichier.
    Par exemple (sans gestion d'erreurs pour rester simple):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    character (len=80) :: filename
    integer nlines
    integer, parameter :: nlines_wanted = 15 ! to be adapted
    ...
    call system('wc -l fichier.in > wc.out')
    open(unit=20, file='wc.out')
    read(20, *) nlines, filename
    if (nlines /= nlines_wanted) then
         ...
    else
         ...
    end if
    en supposant que wc sorte le nombre de ligne suivi du nom du fichier.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Ah oui, j'avais pas pensé à ça

    Merci beaucoup pour la clarté et la rapidité de la réponse.

Discussions similaires

  1. Récupérer le résultat d'une commande scp
    Par vbcasimir dans le forum Linux
    Réponses: 19
    Dernier message: 20/05/2009, 16h14
  2. [DOS] Récupérer le résultat d'une commande SC
    Par Bahan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/01/2008, 14h31
  3. Réponses: 3
    Dernier message: 19/06/2007, 11h27
  4. Récupérer le résultat d'une commande shell
    Par espadon1 dans le forum Langage
    Réponses: 4
    Dernier message: 02/06/2006, 10h01
  5. Réponses: 2
    Dernier message: 02/01/2006, 10h39

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