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

Ada Discussion :

Appels systèmes ADA


Sujet :

Ada

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 24
    Points
    24
    Par défaut Appels systèmes ADA
    Bonjour,

    Est-il possible de faire des appels systèmes en ADA (comme par exemple system("PAUSE"); en C) ?

    En fait, j'essaye de coder une fonction qui effacerait le texte de la console. Or sur mon mac, la commande TEXT_IO.PUT (ASCII.ESC & "[2J"); ne marche pas - j'aimerais donc la remplacer par un équivalent tel que system("CLEAR"); .

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Tu peux toujours importer la fonction C system dans ada :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    function System (Cmd : Interfaces.C.Char_Array) return Interfaces.C.int;
    pragma Import (C, System, "system");

  3. #3
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    avec Windows, tout compilateur est livré avec les API Win32
    pour interfacer un programme utilisateur avec les fonctions système

    Je pensais que MAC offrait le même service

  4. #4
    Modérateur

    Avatar de kOrt3x
    Homme Profil pro
    Technicien Informatique/Webmaster
    Inscrit en
    Septembre 2006
    Messages
    3 650
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Technicien Informatique/Webmaster
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 650
    Points : 15 771
    Points
    15 771
    Par défaut
    Citation Envoyé par HRS Voir le message
    avec Windows, tout compilateur est livré avec les API Win32
    pour interfacer un programme utilisateur avec les fonctions système

    Je pensais que MAC offrait le même service
    Jeter un oeil là dessus.

    http://aurelien-gaymay.developpez.com/

    La rubrique Mac
    Les cours & tutoriels Mac
    Critiques de Livres Mac & iOS
    FAQ Mac & iOS

    ________________________________________________________________________
    QuickEvent : Prise de rendez-vous rapide pour iPhone/iPad et iPod Touch (AppStore)
    Mon Livre sur AppleScript : AppleScript: L'essentiel du langage et de ses applications

  5. #5
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Je ne comprend pas pourquoi tu nous donnes ce lien.

    La question n'est pas de savoir si on peut faire de l'ADA sous Mac mais si on a accès directement aux appels systèmes via le compilateur.

    Or ceci n'a rien de normalisé et quand bien même GNAT le fournirait, il faudrait recommencer de façon différente sur un autre compilateur. D'où ma solution d'utiliser une interface ADA <-> C, puisque l'appel C est standard.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    86
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 86
    Points : 109
    Points
    109
    Par défaut
    Citation Envoyé par Poisson_Pilote Voir le message
    Bonjour,

    Est-il possible de faire des appels systèmes en ADA (comme par exemple system("PAUSE"); en C) ?
    Chère collègue , je te propose une autre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    With Gnat.Os_Lib;Use Gnat.Os_Lib;
     
     
    Procedure clear    is
    Arguments : Argument_List( 1.. 2) ;
    Clear : constant string := "/bin/sh";--chemin vers sh
    WasSpawned: boolean;
    Arg1 : aliased String  := "-c";
    Arg2 : aliased String  := "clear";
    begin
    Arguments(1) := Arg1'unchecked_access;
    Arguments(2) := Arg2'unchecked_access;
    Spawn( Clear, Arguments, WasSpawned );
    end Clear;
    While I breath, I hope.

  7. #7
    Expert éminent
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Points : 6 486
    Points
    6 486
    Par défaut
    Ta solution nécéssite à la fois sh et gnat. Néanmoins, elle est intéressante.

  8. #8
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Points : 24
    Points
    24
    Par défaut
    Beuh, c'est pas élégant cette dernière solution...l'import de fonction C est crade aussi, mais beaucoup plus portable

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/12/2006, 20h59
  2. appel système en c sous linux
    Par momoh dans le forum POSIX
    Réponses: 5
    Dernier message: 03/12/2006, 18h34
  3. Réponses: 3
    Dernier message: 20/06/2006, 07h06
  4. [UBUNTU] Ajout nouvel appel système ?
    Par [Margot] dans le forum Ubuntu
    Réponses: 5
    Dernier message: 11/05/2006, 14h11
  5. appel système opendir dans thread
    Par madimane dans le forum POSIX
    Réponses: 2
    Dernier message: 14/04/2006, 05h39

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