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 :

concatener deux chaines


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 16
    Par défaut concatener deux chaines
    bonsoir tout le monde;

    je veux ouvrir le tube nommé de chaque utilisateur lorsqu il accède à mon prgm!!
    sachant que chacun a un tube "fifo" dans un ss_repertoire à son nom dans un répertoire commun déjà crée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    char *c;
                   char k[];
                   int ptf;
                   c=getenv("USER");
                    k=strcat("../",c);
    		if(ptf=open(strcat(k,"/fifo"),O_WRONLY))==-1){ 
    			perror("erreur d ouverture en ecriture");
    			exit(1);}
              		}
    mais le strcat ne fonctionne pas!!
    parce que apparemment il faut que je les concatène à l aide de cette fonction et si je met directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ptf=open ("../getenv("USER")/fifo",O_WRONLY)==-1
    ça ne fonctionne pas aussi

    merci pour votre aide

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    cela métonne que cela compile sans erreur ni warning, ta variable k à une taille inconnue.

    Pour bien faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char k[1024];
    sprintf(k, "../%s/fifo", getenv("USER"));
    if(ptf=open(k,O_WRONLY))==-1)
    Ce bout de code est bien à améliorer car il n'y a aucun contrôle sur la validité du pointeur retourné par getenv("USER")
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 16
    Par défaut
    ok merciiii j essaye ça et je vous tiendrai au courant

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 16
    Par défaut
    mais une petite question!!
    si je remplace mon code par le votre je n ai plus besoin du pointeur *c
    vu que moi je l ai mise juste pour lui affecter le getenv("USER")
    alors que vous vous l utilisez directement
    c est ça?

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Dans mon code, effectivement, il n'y en a plus besoin mais je n'ai pas fait de contrôle de la validité du getenv().

    Ce que tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char *c;
       c = getenv("USER");
       if(c == NULL)
       {
          /* traitement de l'erreur */
       }
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 16
    Par défaut
    ahhh d accord!!
    ça marche en tout cas!!
    je vous remercie infiniment -->vous me sauvez la vie
    bonne journée..

  7. #7
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Je ne sais pas où tu en es dans ton code actuel, mais sur ton code initial, il y a deux autres grosses erreurs de principe dans la ligne
    1- k est un tableau. On ne peut jamais écrire tableau = quelque_chose

    2- la première chaine du strcat() doit recevoir le résultat de la concaténation, or une chaine littérale (du genre "----") est non modifiable.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 16
    Par défaut
    oui oui je me suis rendu compte après aussi
    tout va bien maintenant..ça marche..
    merci en tout cas
    vous m'avez énormément aidé..
    Je vous suis reconnaissante ..
    bonne soirée..

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

Discussions similaires

  1. concatené deux chaine de caractère
    Par solo190 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/07/2011, 12h48
  2. concatener deux chaines
    Par elgeek dans le forum Débuter
    Réponses: 3
    Dernier message: 31/10/2010, 23h46
  3. Concatener deux chaines simple
    Par Zouko dans le forum Développement
    Réponses: 3
    Dernier message: 03/06/2008, 10h27
  4. Concaténer deux fichiers Ligne/Ligne avec SH
    Par guiltouf dans le forum Linux
    Réponses: 7
    Dernier message: 22/05/2007, 14h35
  5. Script test de deux chaine avec if
    Par kacedda dans le forum Linux
    Réponses: 6
    Dernier message: 02/05/2003, 15h38

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