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 :

Portabilite C sur HPUX


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut Portabilite C sur HPUX
    Voila dans le cadre de mes etudes il faut que mes programmes soient poartable sur toutes les archis de mon ecole.

    Mais lorsque je compile sur HPUX il me dit que les flags de la fonction open( ) ne sont pas declarer.

    In function `analyse2':
    assemb/sources/deuxieme_passe1.c:75: error: `O_WRONLY' undeclared (first use in this function)
    assemb/sources/deuxieme_passe1.c:75: error: (Each undeclared identifier is reported only once
    assemb/sources/deuxieme_passe1.c:75: error: for each function it appears in.)
    assemb/sources/deuxieme_passe1.c:75: error: `O_CREAT' undeclared (first use in this function)
    assemb/sources/deuxieme_passe1.c:75: error: `O_TRUNC' undeclared (first use in this function)
    make: *** [assemb/sources/deuxieme_passe1.o] Error 1
    Apres avoir lu les pages de man et mis les includes correspondants il continue a ne pas les reconnaitre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifdef __hpux__
     
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
     
    #endif /* __hpux__ */
    Voila donc si vous pouviez m'aider je vous en serais reconnaissant.
    Merci

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Que fait ton programme, et quelles sont les architectures autre HPUX sous lesquelles ton programme doit être porté? En ce qui concerne l'usage de open() sous HPUX http://www.informatik.uni-frankfurt....ux/open.2.html. Tout ce dont tu as besoin semble être défini dans fcntl.h. C'est bizarre, et je n'ai malheureusement pas de machine HPUX sous la main pour tester.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    alors je suis deja portable sur :

    - NetBSD
    - FreeBSD
    - OpenBSD
    - LINUX
    - Windows
    - SUN
    - Alpha
    - Mips
    - MacOsX

    il me manque HPUX et si possible en bonus pour le fun Cirix.

    Le but de ce programme est d'écrire des programmes destinés a se battre. Il devra donc comprendre le langage assembleur et generer des programmes en binaire comprehensibles par la machine virtuelle.

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kazuo0
    alors je suis deja portable sur :

    - NetBSD
    - FreeBSD
    - OpenBSD
    - LINUX
    - Windows
    - SUN
    - Alpha
    - Mips
    - MacOsX
    Alors il faut éviter d'utiliser les fonction systèmes et se contenter des fonctions standards du C...

  5. #5
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par kazuo0
    alors je suis deja portable sur :

    - NetBSD
    - FreeBSD
    - OpenBSD
    - LINUX
    - Windows
    - SUN
    - Alpha
    - Mips
    - MacOsX

    il me manque HPUX et si possible en bonus pour le fun Cirix.

    Le but de ce programme est d'écrire des programmes destinés a se battre. Il devra donc comprendre le langage assembleur et generer des programmes en binaire comprehensibles par la machine virtuelle.
    Là, il faut essayer de te limiter aux fonctions fournies par la bibliothèque standard du C comme décrites dans la norme C99 (ou C90, la dernière norme n'étant pas implantée par tous les compilateurs). Les fonctions systèmes telles que open() ne sont pas adaptés, car utilisables uniquement sur les systèmes conformes POSIX.


    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    et si vraiment tu veux faire comme ça, cherche dans /usr/include ou /usr/include/sys sous HPUX, il doit y avoir quelque part un ifdef POSIX ou quelque chose comme ça, et à ce compte-là il te faut l'inclure dans ta ligne de compile...

    Sinon se passer de ça, comme dit plus haut

  7. #7
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Solution trouver merci de votre aide

    j'ai fait ma brute en declarant en dur a coup de define la valeur de chaque flag.

    Encore merci et j'espere que la prochaine fois je donnerais une reponse plutot que de poser une question

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Citation Envoyé par kazuo0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #ifdef __hpux__
     
    #include <fcntl.h>
    #include <sys/types.h>
    #include <sys/stat.h>
     
    #endif /* __hpux__ */
    Juste une question, pourquoi les include sont encadrés par un #ifdef __hpux__ ?

  9. #9
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par kazuo0
    Solution trouver merci de votre aide

    j'ai fait ma brute en declarant en dur a coup de define la valeur de chaque flag.

    Encore merci et j'espere que la prochaine fois je donnerais une reponse plutot que de poser une question
    Tout sauf portable! Pourquoi n'utilises-tu pas les fonctions de la bibliothèque standard à la place de open()?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  10. #10
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Citation Envoyé par mujigka
    Tout sauf portable

    d'ou l'orignie du ifdef

    ces define ne sont pris en compte que sous hp-ux

    et puis je ne vois pas quelles fonctions de la lib standar peuvent remplacer un open().

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    fopen(), tout simplement...
    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.

  12. #12
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par kazuo0
    d'ou l'orignie du ifdef

    ces define ne sont pris en compte que sous hp-ux

    et puis je ne vois pas quelles fonctions de la lib standar peuvent remplacer un open().
    fopen(): http://man.developpez.com/man3/fopen.3.php

    EDIT: grillé par Médinoc...

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  13. #13
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    je l'avais oubliee celle la mais ne peut pas l'utilise



    Citation Envoyé par Intitule du projet
    Pour écrire ce programme, vous pourrez utiliser seulement les fonctions suivantes:

    open, read, write, lseek, close, break, continue, malloc, realloc, free, exit.

    Vous devrez écrire tout le reste. Pour les structures C, vous avez droit à tout ce que vous avez fait en cours et seulement à cela .
    Soit reecrire toutes les fonction de la lib standard que je souhaite utiliser

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Cours de C obsolète --> Change d'école.
    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.

  15. #15
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par kazuo0
    je l'avais oubliee celle la mais ne peut pas l'utilise

    Citation Envoyé par Intitule du projet
    Pour écrire ce programme, vous pourrez utiliser seulement les fonctions suivantes:

    open, read, write, lseek, close, break, continue, malloc, realloc, free, exit.

    Vous devrez écrire tout le reste. Pour les structures C, vous avez droit à tout ce que vous avez fait en cours et seulement à cela .
    Soit reecrire toutes les fonction de la lib standard que je souhaite utiliser
    Il fallait commencer par ça! Mais, je voix pas l'intérêt de prohiber l'utilisation de fopen() au profit de open()... surtout si tu veux du code portable sur tous les systèmes que tu as mentionné.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par mujigka
    Il fallait commencer par ça! Mais, je voix pas l'intérêt de prohiber l'utilisation de fopen() au profit de open()...

    Thierry
    peut-être justement leur apprendre l'utilisation des directives conditionnelles, et que les include sont pas toujours au même endroit ou ne contiennent pas forcément les mêmes routines suivant les systèmes, ou que tout n'est pas POSIX ...

  17. #17
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    39
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 39
    Par défaut
    Citation Envoyé par mujigka
    Il fallait commencer par ça! Mais, je voix pas l'intérêt de prohiber l'utilisation de fopen() au profit de open()...

    Thierry
    C'etait un oubli de ma part

    en revanche cette prohibition est la politique de l'ecole ({EPITECH.}). Personellement elle est utile de temps a autres quand meme. En effet si on veu utiliser une fonction standard on la recode donc on voit clairement ce qu'elle fait et donc si elle renvoi un SIGSEV (ce qui arrive) on est suseptible de comprendre pourquoi.

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Mon conseil: Pour commencer, fais une grosse recherche de O_WRONLY dans le dossier d'inclusion pour voir si ces constantes y existent ou non.
    Si elles y existent, regarde un peu les #ifdef & co. que tu verras autour...
    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.

  19. #19
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par souviron34
    peut-être justement leur apprendre l'utilisation des directives conditionnelles, et que les include sont pas toujours au même endroit ou ne contiennent pas forcément les mêmes routines suivant les systèmes, ou que tout n'est pas POSIX ...
    Ok, c'est une raison louable!

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

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

Discussions similaires

  1. activation agent snmp dans un serveur basé sur HPUX
    Par joestar10 dans le forum Administration système
    Réponses: 1
    Dernier message: 22/03/2010, 14h57
  2. [HP-UX] Service basicdsd sur HPUX
    Par sjfdj dans le forum Unix
    Réponses: 0
    Dernier message: 02/09/2008, 12h00
  3. portabilité des \ sur unix
    Par pascale_92 dans le forum C++
    Réponses: 1
    Dernier message: 14/11/2007, 23h42
  4. Glassfish sur HPUX ou AIX
    Par trs80 dans le forum Glassfish et Payara
    Réponses: 4
    Dernier message: 21/09/2007, 20h38
  5. Portabilité Delphi sur MacOS X ?
    Par chadkops dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2005, 11h39

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