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

POSIX C Discussion :

Compatibilité multi OS


Sujet :

POSIX C

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Compatibilité multi OS
    Bonsoir,

    J'espère que je ne me suis pas trompé de Forums pour le problème qui m'amène
    vers vous.
    Voila mon problème, je suis entrain de coder un programme sous FreeBSD qui utilise les termcaps. J'aimerais que celui ci soit compatible avec SunOS et Linux malheureusement pour moi je ne sais pas comment faire.

    C'est pourquoi je viens ici, en esperant que certains peuvent m'aider a comprendre comment rendre un programme compatible (en general) et dans un second temps le compatibilite des termcaps.

    En vous remerciant d'avance

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je crois qu'en-dessous de certaines versions, certains OS sont trop incompatibles (System V contre Berkeley, etc.).

    Mais si tu as des versions assez récentes de FreeBSD et SunOS, la compatibilité POSIX devrait être assez bonne...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 377
    Points : 23 663
    Points
    23 663
    Par défaut
    Citation Envoyé par Von Hellsing Voir le message
    J'espère que je ne me suis pas trompé de Forums pour le problème qui m'amène vers vous.
    Voila mon problème, je suis entrain de coder un programme sous FreeBSD qui utilise les termcaps. J'aimerais que celui ci soit compatible avec SunOS et Linux malheureusement pour moi je ne sais pas comment faire.
    De quelle manière utilises-tu les termcaps ? En principe, les terminaux étant par principe en dehors du système, ça devrait être la même chose partout.

    C'est pourquoi je viens ici, en esperant que certains peuvent m'aider a comprendre comment rendre un programme compatible (en general) et dans un second temps le compatibilite des termcaps. En vous remerciant d'avance
    Pour rendre un programme compatible en général, il n'y a pas de secret, et je crois que tu connais déjà les recettes :

    1. Choisir un ou deux standards (par exemple POSIX), vérifier qu'ils sont entièrement pris en charge sur les plateformes cibles et s'y conformer strictement. C'est le dernier point le moins facile à mon avis ;
    2. Choisir un nombre réduit de bibliothèques pour faire l'essentiel du travail, et faire les mêmes vérifications ;
    3. Isoler les derniers points particuliers aux différents systèmes, s'assurer que l'on a bien compris à quoi sont dues ces exceptions et faire du développement spécifique, si possible dans un répertoire dédié, en utilisant les bonnes macros et en étant généreux en commentaires.

  4. #4
    Invité
    Invité(e)
    Par défaut
    La compatibilité passe aussi par un makefile qui va chercher là où il faut les binaires de gcc et make. Également, prends bien en compte le cas où posix est inexistant où d'une version différente, en n'utilisant pas les macros posix directement mais via d'autres macros, afin de pouvoir leur donner une valeur si besoin.
    Compile régulièrement sous les trois architectures et dès le début, afin de vérifier que tout fonctionne correctement. Et enfin pour les termcaps en particulier, je crois (mais c'est à vérifier) que les includes changent de nom, en plus de changer de place...
    Have fun!

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses

    Le projet que nous sommes entrain de coder est un shell et on a besoin de la lib termcaps et associé (ncurses.h et term.h).

    Sous Sun le problème va être vite réglé puisque que les librairies sont prises en compte après essai, j'ai juste a changer l'adresse de GCC et du make pour le Makefile, par contra pour Linux c'est un autre paire de manches, je pense qu'il faut que j'utilise la librairie terminfo.h .

    Si j'ai bien compris la seule solution est de réécrire la partie qui utilisent les termcaps dans un fichier spécial et qui sera compilé à la place de l'autre sous linux ??
    Ou est ce qu'il y a possibilité d'associé une fonction de la lib termcaps à celle de la lib terminfo par un define ??

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 377
    Points : 23 663
    Points
    23 663
    Par défaut
    Le mieux est encore d'aller chercher directement la libtermcap directement. La man page semble indiquer qu'elle est dépréciée au profit de terminfo et que c'est pour ça qu'elle n'est plus installée par défaut, mais la wikipage de terminfo précise que c'est le cas depuis 1982.

    Donc, choisis l'une ou l'autre des bibliothèques, et tiens-t'en à elle sur les deux systèmes.

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [Lazarus] Compatibilité multi-platefomes de BitMaps : problème sous gtk2
    Par J_apprenti dans le forum Lazarus
    Réponses: 18
    Dernier message: 08/01/2014, 01h23
  3. Reference des compatibilitées multi navigateur
    Par the-destroyer dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/06/2011, 12h27
  4. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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