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

Réseau C Discussion :

Fin de réception de fichier incorrecte


Sujet :

Réseau C

  1. #21
    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 518
    Points
    41 518
    Par défaut
    Si tu envoies le nom avec Dsend/Drecv, tu auras la taille. Tu peux alors le copier dans un nouveau buffer ou agrandir le buffer existant avec realloc...
    ... ou tu peux tout simplement le transmettre avec son caractère nul.
    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.

  2. #22
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    const modifie le type à sa gauche. sauf s'il n'y en a pas du tout, auquel cas, il modifie le premier à sa droite.

    avec const char *p ou char const *p, le char est constant, et l'étoile pointe dessus.
    un pointeur constant vers un char s'écrit char *const pUn pointeur constant vers un char constant s'écrit ainsi char const * const pLe commentaire dit doxygen est une manière de remplir un commentaire normal (/* */) de façon à ce que l'outil nommé doxygen puisse générer une documentation (généralement au format web).
    Il comprend deux particularités:
    • il commence par /** et chaque ligne commence par une *
    • il y a certaines balises pour donner des informations supplémentaires: @param, @return, @throws...


    Quant à ta question, tes données contiennent des '\0'. (Parce que tu ne peux pas savoir qu'elles n'en contiennent jamais)
    Donc tu ne peux faire appel à aucune fonction de chaines de caractères.
    Tu ne peux utiliser que le mode pointeur+taille.

    Il n'y a aucune valeur particulière que tes données ne peuvent pas contenir, tu n'auras donc pas de valeur balise possible, que ce soit \0 ou une autre.
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  3. #23
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mars 2014
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Mars 2014
    Messages : 158
    Points : 465
    Points
    465
    Par défaut
    @leternel merci pour ton explication de const et doxygen (que je n'arrive pas à faire fonctionner avec codeblock enfin c'est un autre problème)

    @médinoc effectivement aussi envoyer le \0 est la manière la plus simple de transmettre le nom

    du coup je vous remercie tous les deux et tous ceux qui m'ont aidé et je pense loc le sujet vu que mon client et mon serveur fonctionnent sous linux (reste plus qu'à tester sous windows).

    P.S médinoc les structures fstat et _fstat sont identiques
    et pour la fonction de concaténation dynamique j'ai essayé d'utiliser celle de sambia39 mais à chaque fois que je l'utilise ma taille indiquée par size+1 est inférieure à save_t pourtant je lui passais comme taille strlen(dossier)+strlen(nom)+1 (nom et dossier sont bien des chaines)

  4. #24
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mars 2014
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Mars 2014
    Messages : 158
    Points : 465
    Points
    465
    Par défaut
    pour la fonction de sambia et la tienne @médinoc j'ai trouvé l'erreur il se trouvais que j'essayais de faire ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    concat("/home/test/",nomFichier)
    du coup il n'acceptais pas je pense que c'est due a la chaine "/home/test/" qui doit être en const car déclarée lors de la compilation

  5. #25
    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 518
    Points
    41 518
    Par défaut
    Il me semble carrément que la version qu'on avait postée prenait son char* par pointeur, pour éviter une partie de ce genre de choses (et parce qu'elle ré-allouait le pointeur pour accommoder la longueur supplémentaire).
    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.

  6. #26
    Membre confirmé
    Homme Profil pro
    Ingénieur sécurité
    Inscrit en
    Mars 2014
    Messages
    158
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur sécurité

    Informations forums :
    Inscription : Mars 2014
    Messages : 158
    Points : 465
    Points
    465
    Par défaut
    effectivement ta fonction et celle de sambia prennent des char * mais accepte qu'on leur passe une chaine constante comme ca
    en fait il se trouve que j'utilisais comme ça ta fonction (en simplifier)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int main{
        fct("/home/test/");
    }
    void fct(char * dossier)
    {
        char *nomFichier=quelquechose;
        concat(dossier,nomFichier);
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [7][Expert Sous-état] Liaison avec le fichier incorrecte
    Par clementratel dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 18/01/2008, 14h12
  2. Numero de fichier incorrect
    Par choko62 dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/06/2007, 14h09
  3. Pb création Image (nom Fichier incorrecte)
    Par yocks dans le forum Java ME
    Réponses: 3
    Dernier message: 12/06/2007, 16h58
  4. Réponses: 1
    Dernier message: 22/01/2007, 09h02
  5. [Unix KSH] Ajout caractère fin de ligne dans fichier
    Par -COil- dans le forum Autres langages
    Réponses: 1
    Dernier message: 04/05/2006, 16h06

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