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 :

commandes system() sous Linux


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : juillet 2016
    Messages : 22
    Points : 15
    Points
    15
    Par défaut commandes system() sous Linux
    Bonjour a tous

    Je suis debutant en c++
    j utilise l IDE Code Blocks

    Je suis passe recemment sous linux

    je souhaite utiliser la fonction system() et ses differentes commandes...

    mais voila :
    les commandes sous Windows ne sont pas les memes que sous Linux...

    j ai cherché dans Google, mais impossible de mettre la main sur une liste de commandes system() fonctionnant avec linux...

    en gros, je n arrive a placer dans mon programme que la commande system("clear")...

    en plus je ne sais pas si il y aura un souci de portabilité de mon .exe si je veux qu il tourne en plus sous Windows

    merci de votre aide...
    Adiya

  2. #2
    Expert éminent
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    juillet 2013
    Messages
    3 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : juillet 2013
    Messages : 3 782
    Points : 8 467
    Points
    8 467
    Par défaut
    Voici la référence de cette fonction system, en anglais, source cplusplus

    clear existe sous Cygwin64, mais pas sous Windows 8.1. Et cela ne me dit rien sous 1 vrai linux

    Si je ne dis pas de bêtises, cette fonction exécute 1 commande de la ligne de commandes. Mais 1 commande est en règle générale (sous Linux)
    • 1 programme soit spécifique comme ls ou cd, soit installé (Windows également) comme gcc, make
    • 1 alias avec des bascules en +. Par exemple, ll pour ls -la.
    • 1 script/ batch (Windows également)


    Donc, les commandes Windows et Linux sont TOTALEMENT différentes et il faudra passer par le préprocesseur #ifdef/ #ifndef/ #else/ #elif/ #endif avec les variables d'environnement pour savoir vers quelle plateforme tu crées ton exécutable comme _MSC_VER, __linux__ ou _WIN32/ _WIN64

  3. #3
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    octobre 2004
    Messages
    11 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : octobre 2004
    Messages : 11 456
    Points : 29 655
    Points
    29 655
    Par défaut
    Salut,

    De manière générale, il faut te dire que, si tu as besoin de l'instruction system, c'est soit que tu essayes de faire "quelque chose" qu'il serait plus facile de faire à l'aide d'un script bash, soit que tu essayes de ** trop ** te faciliter la vie en réutilisant l'existant.

    Pour le reste, il est vrai que certaines commandes sont disponibles sur un système d'exploitation particulier et non sur l'autre. Il arrive d'ailleurs aussi que l'exécutable permettant d'avoir un résultat donné (par exemple : effacer la sortie standard) puisse porter un nom différent en fonction du système d'exploitation (cls sous windows, clrscr sous linux).

    Cependant, comme toutes ces commandes sont prises en compte par l'interpréteur de commandes "classique", si tu veux savoir quelle commande doit être utilisée pour obtenir tel effet sous tel système d'exploitation, le mieux est encore de te tourner vers un tutoriel dédié à l'interpréteur de commande

    En outre, veille quand même à ne pas oublier le fait que la présence d'une instruction donnée n'est absolument pas garantie en fonction du système sur laquelle on la recherche: elle peut parfaitement être présente sur ton PC parce que tu as installé un outil qui la propose et... absente sur le PC de ton voisin qui n'a pas fait l'installation correspondante

    Enfin, il est important de se souvenir que la "console" windows et la console linux ne sont absolument pas bâties de la même manière et qu'elles ne respectent absolument pas le même normes
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : juillet 2016
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Merci de vos reponses

    je pense mieux comprendre le sujet

    donc, pour revenir a ma requete, comment faire (avec un code c++), pour modifier la taille de la fenetre (DOS ?) ?
    et comment modifier les couleurs de fond et des textes ?

    sinon, si c est pas possible, je devrais plutot avoir recours a Qt...

    mais je serais peut etre plus a l aise si je pouvais me contenter d un programme console

    mercii de m eclairer

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    13 971
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 13 971
    Points : 32 051
    Points
    32 051
    Par défaut
    Pour les couleurs du terminal, tu peux regarder du coté de séquences d’échappement ANSI, mais rien de garanti au niveau de la portabilité sur toutes les machines.

    Pour la taille, ce sera très limité, tu peux jouer avec le nombre de lignes et colonnes, exemple cmd.exe:
    mode con: cols=160 lines=20

    Pour linux, tu peux jouer avec NCurses, aussi bien dans ton code C que depuis le terminal.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutoriels/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2016
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : juillet 2016
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    OK

    merci d avoir pris le temps de repondre

    ca me semble si compliqué que je pense utiliser Qt

    surtout que Qt offre beaucoup de potentiel

    merci encore

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

Discussions similaires

  1. [SOLARIS 8] Equivalent commande column sous linux
    Par Faboul dans le forum Solaris
    Réponses: 2
    Dernier message: 16/05/2008, 18h54
  2. [Système] Commande system() sous Windows
    Par gouakkamol dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2008, 19h43
  3. [Système] Commande system php (Linux)
    Par Oregon09 dans le forum Langage
    Réponses: 2
    Dernier message: 08/06/2007, 16h15
  4. Appelle de commande shell sous linux
    Par jobe dans le forum C
    Réponses: 3
    Dernier message: 01/05/2007, 12h54
  5. commande javac sous linux pour compiler
    Par root76 dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2007, 13h46

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