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 :

fonction putenv de stdlib


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Par défaut fonction putenv de stdlib
    Bonjour à tous,

    Je compile du code avec cc (cc: Sun C 5.10 Linux_i386 2009/06/03)
    J'ai un warning qui me dit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "./SRC/BMOTEUR_calcul.c", line 79: warning: implicit function declaration: putenv
    pourtant j'ai bien en début de fichier:

    Du coup je ne comprends pas pourquoi j'ai ce warning.... des idées?

    nb: l'appel de la fonction est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      char str[1000] = " ";
    ...
    ...
    ...
        putenv(str);

  2. #2
    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
    faut savoir lire une doc...

    putenv

    int putenv (char *string);

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2012
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 190
    Par défaut @souviron34
    salut !

    on est au moins deux à ne pas savoir lire les doc.
    je ne suis pas un compilateur, mais je ne vois pas où est le pb.
    j'ai hâte d'apprendre.

    A+

  4. #4
    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
    devrait marcher..

    Le prototype est un int et l'appel le transforme en void..

    Je pense donc que le compilo trouve que c'est une nouvelle définition, qui, au link n'est pas trouvée..

    PS: par contre, il faudrait savoir avec quels flags c'est compilé. Et d'autre part quelles versions. Parce qu'il me semble me souvenir que sous certains "flavours" de unix c'était dans "unistd.h"..

  5. #5
    Membre très actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CFLAGS=-D_ANSI_C_SOURCE\       
           -D_POSIX_C_SOURCE\                                                                  
           -Dlinux\                                                    
           -DXT_CODE\                                                                  
           -DMOTIF\                                                                
           -DXOPEN_CATALOG\                                                                    
           -D_XOPEN_SOURCE_EXTENDED
    voici les flags significatifs. La question que je me pose est sur le -Dlinux: l'appli que j'essaye de compiler a été développée sous Unix, et le flag était: -Dsun4, que j'ai remplacé sans trop être sûr de mon fait (la doc est un peu confuse sur ce point) par -Dlinux.

    pour info cat /proc/version renvoie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Linux version 2.6.18-164.el5 (mockbuild@x86-003.build.bos.redhat.com) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-46)) #1 SMP Tue Aug 18 15:51:48 EDT 2009
    4

  6. #6
    Membre très actif
    Profil pro
    ingénieur
    Inscrit en
    Novembre 2011
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur

    Informations forums :
    Inscription : Novembre 2011
    Messages : 165
    Par défaut
    arf, merci souviron34 d'avoir soulevé le problème des flags, j'ai résolu le problème en changeant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -D_XOPEN_SOURCE_EXTENDED
    par

    Par contre si quelqu'un peux m'expliquer le pourquoi du comment...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 12/02/2013, 01h08
  2. la fonction system de stdlib
    Par fk04 dans le forum Threads & Processus
    Réponses: 2
    Dernier message: 16/03/2010, 20h57
  3. Implémentation des fonctions mathématiques
    Par mat.M dans le forum Mathématiques
    Réponses: 9
    Dernier message: 17/06/2002, 16h19
  4. fonction printf
    Par ydeleage dans le forum C
    Réponses: 7
    Dernier message: 30/05/2002, 11h24
  5. FOnction api specifiant la position de la souris
    Par florent dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/05/2002, 20h07

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